1234567891011121314151617181920212223242526272829303132333435 |
- #include <algorithm>
- #include "odr_header1.h"
- class Ordering {
- public:
- bool operator()(int a, int b) __attribute__((never_inline));
- };
- // This comment makes the line numbers in Ordering::operator() all have
- // two digits, which causes gold's output to be independent of which
- // instruction the compiler optimizes into the front of the function.
- bool Ordering::operator()(int a, int b) {
- // Optimization makes this operator() a different size than the one
- // in odr_violation1.cc.
- return a + 12345 > b / 67;
- }
- void SortDescending(int array[], int size) {
- std::sort(array, array + size, Ordering());
- }
- // This is weak in odr_violation1.cc.
- extern "C" int OverriddenCFunction(int i) {
- return i * i;
- }
- // This is inline in debug_msg.cc, which makes it a weak symbol too.
- int SometimesInlineFunction(int i) {
- return i * i;
- }
- // Instantiate the Derived vtable, with optimization (see Makefile.am).
- OdrBase* CreateOdrDerived2() {
- return new OdrDerived;
- }
|