re PR lto/41921 (Cross language don't work with typedef unnamed structs)
authorRichard Guenther <rguenther@suse.de>
Thu, 3 Jun 2010 16:08:10 +0000 (16:08 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 3 Jun 2010 16:08:10 +0000 (16:08 +0000)
2010-06-03  Richard Guenther  <rguenther@suse.de>

PR lto/41921
* lib/lto.exp: Always load gcc.exp.
(lto-obj): For C source files invoke gcc_target_compile.
* g++.dg/lto/20100603-1_0.C: New testcase.
* g++.dg/lto/20100603-1_1.c: Likewise.

From-SVN: r160226

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lto/20100603-1_0.C [new file with mode: 0644]
gcc/testsuite/g++.dg/lto/20100603-1_1.c [new file with mode: 0644]

index 048c51390b336be24e39be6c23cb3d67af2107d1..79d34c29c9298c2296ef1641b0569cdf85c2be69 100644 (file)
@@ -1,3 +1,11 @@
+2010-06-03  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41921
+       * lib/lto.exp: Always load gcc.exp.
+       (lto-obj): For C source files invoke gcc_target_compile.
+       * g++.dg/lto/20100603-1_0.C: New testcase.
+       * g++.dg/lto/20100603-1_1.c: Likewise.
+
 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR tree-optimization/43688
diff --git a/gcc/testsuite/g++.dg/lto/20100603-1_0.C b/gcc/testsuite/g++.dg/lto/20100603-1_0.C
new file mode 100644 (file)
index 0000000..8fe11a2
--- /dev/null
@@ -0,0 +1,14 @@
+/* { dg-lto-do link } */
+
+extern "C" {
+    typedef struct {} CvImage;
+    extern CvImage* Cv_ImageNew(void);
+}
+void __attribute__((noinline,noclone))
+_Raytrace(CvImage* LImage) { __asm volatile (""); }
+int main(int LArgC, char** LArgV) 
+{
+  CvImage* LImage = Cv_ImageNew();
+  _Raytrace(LImage);
+}
+
diff --git a/gcc/testsuite/g++.dg/lto/20100603-1_1.c b/gcc/testsuite/g++.dg/lto/20100603-1_1.c
new file mode 100644 (file)
index 0000000..fddce5d
--- /dev/null
@@ -0,0 +1,2 @@
+typedef struct {} CvImage;
+CvImage* Cv_ImageNew(void) { }