From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9063 invoked by alias); 3 Nov 2009 06:29:41 -0000 Received: (qmail 9027 invoked by uid 48); 3 Nov 2009 06:29:29 -0000 Date: Tue, 03 Nov 2009 06:29:00 -0000 Subject: [Bug lto/41921] New: Cross language don't work with unnamed structs X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "pinskia at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-11/txt/msg00140.txt.bz2 With a C++ file as: extern "C" { typedef struct {} CvImage; extern CvImage* Cv_ImageNew(void); } extern void _Raytrace(CvImage* LImage); int main(int LArgC, char** LArgV) { CvImage* LImage = Cv_ImageNew(); _Raytrace(LImage); } --- CUT -- And a C file as: typedef struct {} CvImage; CvImage* Cv_ImageNew(void) { } --- CUT --- We get an ICE when doing: gcc -O3 -flto -r -nostdlib t0.cc t1.c In file included from :0:0: t0.cc: In function ‘main’: t0.cc:6:12: error: non-trivial conversion at assignment struct CvImage * struct { } * LImage_1 = D.1869_4(D); t0.cc:6:12: internal compiler error: verify_stmts failed Please submit a full bug report, with preprocessed source if appropriate. See for instructions. lto-wrapper: /home/apinski/change-gcc/bin/gcc returned 1 exit status collect2: lto-wrapper returned 1 exit status -- Summary: Cross language don't work with unnamed structs Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: lto AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41921