This is GCC Bugzilla
This is GCC Bugzilla Version 2.20+
View Bug Activity | Format For Printing | Clone This Bug
$ cat foo.c struct rb_node { } __attribute__((aligned(sizeof(long)))); extern struct rb_node *rb_prev(struct rb_node *); extern struct rb_node *rb_prev(struct rb_node *); $ gcc -c --combine foo.c foo.c foo.c:6: error: conflicting types for ‘rb_prev’ foo.c:5: error: previous declaration of ‘rb_prev’ was here gcc version 4.1.1 20060525 (Red Hat 4.1.1-1.pr27898) Removing the explicit alignment fixes the problem.
This works in 3.4.0 and 4.0.0 so this is either a regression or a bug in redhat's compiler or a bug in the patch.
It is a regression.
Subject: Bug 28706 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
Created an attachment (id=13086) [edit] backported to gcc 4.1.2 Is there any chance of this fix appearing in a release before 4.3.0? I have backported it to 4.1.2 successfully. There was a trivial reject (indentation changes only) and also I had to add { } around the contents of the 2nd hunk in c-typeck.c Let me know if I can help further.
How about posting the backported-and-tested patch to gcc-patches, indicating on which platform you've tested it?
This seems to work as of gcc 4.2.2 (vanilla), using the original commands to reproduce. Anyone denies/confirms this?
(In reply to comment #6) > This seems to work as of gcc 4.2.2 (vanilla), using the original commands to > reproduce. Anyone denies/confirms this? > ... and please see bug 34800 .
works for me with 4.3.1 and current trunk
Closing 4.1 branch.