This is GCC Bugzilla
This is GCC Bugzilla Version 2.20+
View Bug Activity | Format For Printing | Clone This Bug
$ cat foo.i struct tss_struct; extern struct tss_struct *doublefault_tss; struct tss_struct { } __attribute__((packed)); $ gcc -c --combine foo.i foo.i $ gcc -c --combine foo.i foo.i foo.i foo.i:3: error: conflicting types for ‘doublefault_tss’ foo.i:3: error: previous declaration of ‘doublefault_tss’ was here Removing the packed attribute, or compiling only _two_ of them together, makes it work. Seen with ppc->i686 GCC 4.1.0 and also Fedora PowerPC gcc version 4.1.1 20060525 (Red Hat 4.1.1-1.pr27898) (Both with Alex's patch for pr27898).
Confirmed, this worked in 3.4.0.
The C front end part of the patch is OK.
Subject: Bug 28712 Author: jakub Date: Sat Sep 23 07:15:37 2006 New Revision: 117167 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117167 Log: PR c/28706 PR c/28712 * tree.c (merge_attributes, attribute_list_contained): If both TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of simple_cst_equal. * c-typeck.c (comptypes_internal): Don't consider aggregates in different TUs as compatible if there one set of attributes is not a subset of the other type's attributes. (composite_type): Try harder not to create a new aggregate type. * gcc.dg/pr28706.c: New test. * gcc.dg/pr28712.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr28706.c trunk/gcc/testsuite/gcc.dg/pr28712.c Modified: trunk/gcc/ChangeLog trunk/gcc/c-typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/tree.c
won't fix in GCC-4.0.x. Adjusting milestone.
(In reply to comment #4) > won't fix in GCC-4.0.x. Adjusting milestone. > For anyone interested, I think this is fixed for at least gcc 4.2.2; I couldn't reproduce it.
Closing 4.1 branch.