// debug_msg.cc -- a test case for printing debug info for missing symbols.
-// Copyright 2006, 2007 Free Software Foundation, Inc.
+// Copyright (C) 2006-2019 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
virtual void virtfn() { undef_fn2(); }
};
+// This tests One Definition Rule (ODR) violations.
+void SortAscending(int array[], int size); // in odr_violation1.cc
+void SortDescending(int array[], int size); // in odr_violation2.cc
+// This tests One Definition Rule (ODR) non-violations.
+#include "odr_header2.h"
+OdrBase* CreateOdrDerived1(); // in odr_violation1.cc
+OdrBase* CreateOdrDerived2(); // in odr_violation2.cc
+
+extern "C" int OverriddenCFunction(int i); // in odr_violation*.cc
+
+inline int SometimesInlineFunction(int i) { // strong in odr_violation2.cc.
+ return i * i * 3;
+}
+
+
int main()
{
testfn(5);
Base b;
Derived d;
+ int kInput1[] = {1, 6, 9, 7, 3, 4, 2, 10, 5, 8};
+ int kSize1 = sizeof(kInput1) / sizeof(int);
+ SortAscending(kInput1, kSize1);
+
+ int kInput2[] = {1, 6, 9, 7, 3, 4, 2, 10, 5, 8};
+ int kSize2 = sizeof(kInput2) / sizeof(int);
+ SortDescending(kInput2, kSize2);
+
+ OverriddenCFunction(3);
+ SometimesInlineFunction(3);
+
+ delete CreateOdrDerived1();
+ delete CreateOdrDerived2();
+
return 0;
}