diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/ext/interface3')
6 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/ext/interface3/dir1/interface3.h b/gcc/testsuite/g++.dg/ext/interface3/dir1/interface3.h new file mode 100644 index 000000000..874be7509 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/interface3/dir1/interface3.h @@ -0,0 +1,6 @@ +// PR c++/26195 +#pragma interface "dir1/interface3.h" +#include "../dir2/interface3.h" + +inline void f1() { } +inline void f2() { } diff --git a/gcc/testsuite/g++.dg/ext/interface3/dir2/interface3.h b/gcc/testsuite/g++.dg/ext/interface3/dir2/interface3.h new file mode 100644 index 000000000..df6f7cd2f --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/interface3/dir2/interface3.h @@ -0,0 +1,5 @@ +// PR c++/26195 +#pragma interface "dir2/interface3.h" + +inline void g1() { } +inline void g2() { } diff --git a/gcc/testsuite/g++.dg/ext/interface3/interface3a.C b/gcc/testsuite/g++.dg/ext/interface3/interface3a.C new file mode 100644 index 000000000..b324dbef7 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/interface3/interface3a.C @@ -0,0 +1,7 @@ +// PR c++/26195 +// { dg-do link } +// { dg-additional-sources "interface3a2.cc" } +// { dg-options "-I. -fno-inline" } + +#pragma implementation "dir1/interface3.cc" +#include "dir1/interface3.h" diff --git a/gcc/testsuite/g++.dg/ext/interface3/interface3a2.cc b/gcc/testsuite/g++.dg/ext/interface3/interface3a2.cc new file mode 100644 index 000000000..cbf1ba801 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/interface3/interface3a2.cc @@ -0,0 +1,9 @@ +// PR c++/26195 +extern void f1(); +extern void f2(); + +int main() +{ + f1(); + f2(); +} diff --git a/gcc/testsuite/g++.dg/ext/interface3/interface3b.C b/gcc/testsuite/g++.dg/ext/interface3/interface3b.C new file mode 100644 index 000000000..03f753209 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/interface3/interface3b.C @@ -0,0 +1,7 @@ +// PR c++/26195 +// { dg-do link } +// { dg-additional-sources "interface3b2.cc" } +// { dg-options "-fno-inline" } + +#pragma implementation "dir2/interface3.cc" +#include "dir1/interface3.h" diff --git a/gcc/testsuite/g++.dg/ext/interface3/interface3b2.cc b/gcc/testsuite/g++.dg/ext/interface3/interface3b2.cc new file mode 100644 index 000000000..f532adc74 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/interface3/interface3b2.cc @@ -0,0 +1,9 @@ +// PR c++/26195 +extern void g1(); +extern void g2(); + +int main() +{ + g1(); + g2(); +} |