On Fri, Sep 12, 2014 at 10:16:12AM +0200, Richard Biener wrote:
> On Fri, Sep 12, 2014 at 7:40 AM, Jan Hubicka <hubi...@ucw.cz> wrote:
> > Hi,
> > I went through excercise of running LTO bootstrap with ODR verification on. 
> >  There are some typename clashes
> > I guess we want to fix.  I wonder what approach is preferred, do we want to 
> > introduce anonymous
> > namespaces for those?
> 
> For passes you could put them into pass class scope.  Anonymous
> namespaces would work as well but I don't like them very much
> and for this it sounds like an abuse of them.

hm, I agree debugging code in anonymous namespaces is awful, but I'm not
sure I see a reason to dislike putting type definitions there.

fwiw I'm planning to mostly use anon namespaces in Firefox if I get
around to it someday.

Trev

> 
> Prefixing/renaming the names is possible as well, of course.
> 
> Richard.
> 
> > Honza
> >
> > ../../gcc/tlink.c:62:16: warning: type ‘struct file_hash_entry’ violates 
> > one definition rule [-Wodr]
> >  typedef struct file_hash_entry
> >                 ^
> > ../../libcpp/files.c:143:8: note: a different type is defined in another 
> > translation unit
> >  struct file_hash_entry
> >         ^
> > ../../gcc/tlink.c:64:15: note: the first difference of corresponding 
> > definitions is field ‘key’
> >    const char *key;
> >                ^
> > ../../libcpp/files.c:145:27: note: a field with different name is defined 
> > in another translation unit
> >    struct file_hash_entry *next;
> >                            ^
> > ../../gcc/ipa-devirt.c:2674:0: warning: type ‘struct type_change_info’ 
> > violates one definition rule [-Wodr]
> >  struct type_change_info
> >  ^
> > ../../gcc/ipa-prop.c:595:0: note: a different type is defined in another 
> > translation unit
> >  struct type_change_info
> >  ^
> > ../../gcc/ipa-devirt.c:2681:0: note: the first difference of corresponding 
> > definitions is field ‘instance’
> >    tree instance;
> >  ^
> > ../../gcc/ipa-prop.c:602:0: note: a field with different name is defined in 
> > another translation unit
> >    tree object;
> >  ^
> > ../../gcc/gcse.c:294:0: warning: type ‘struct occr’ violates one definition 
> > rule [-Wodr]
> >  struct occr
> >  ^
> > ../../gcc/postreload-gcse.c:160:0: note: a different type is defined in 
> > another translation unit
> >  struct occr
> >  ^
> > ../../gcc/gcse.c:297:0: note: the first difference of corresponding 
> > definitions is field ‘next’
> >    struct occr *next;
> >  ^
> > ../../gcc/postreload-gcse.c:163:0: note: a field of same name but different 
> > type is defined in another translation unit
> >    struct occr *next;
> >  ^
> > ../../gcc/gcse.c:259:0: warning: type ‘struct expr’ violates one definition 
> > rule [-Wodr]
> >  struct expr
> >  ^
> > ../../gcc/postreload-gcse.c:92:0: note: a different type is defined in 
> > another translation unit
> >  struct expr
> >  ^
> > ../../gcc/gcse.c:264:0: note: the first difference of corresponding 
> > definitions is field ‘bitmap_index’
> >    int bitmap_index;
> >  ^
> > ../../gcc/postreload-gcse.c:98:0: note: a field with different name is 
> > defined in another translation unit
> >    hashval_t hash;
> >  ^
> > ../../gcc/predict.c:2499:0: warning: type ‘struct block_info_def’ violates 
> > one definition rule [-Wodr]
> >  typedef struct block_info_def
> >  ^
> > ../../gcc/reg-stack.c:208:0: note: a different type is defined in another 
> > translation unit
> >  typedef struct block_info_def
> >  ^
> > ../../gcc/predict.c:2502:0: note: the first difference of corresponding 
> > definitions is field ‘frequency’
> >    sreal frequency;
> >  ^
> > ../../gcc/reg-stack.c:210:0: note: a field with different name is defined 
> > in another translation unit
> >    struct stack_def stack_in; /* Input stack configuration.  */
> >  ^
> > ../../gcc/lra-eliminations.c:80:0: warning: type ‘struct elim_table’ 
> > violates one definition rule [-Wodr]
> >  struct elim_table
> >  ^
> > ../../gcc/reload1.c:264:0: note: a different type is defined in another 
> > translation unit
> >  struct elim_table
> >  ^
> > ../../gcc/lra-eliminations.c:88:0: note: the first difference of 
> > corresponding definitions is field ‘previous_offset’
> >    HOST_WIDE_INT previous_offset;
> >  ^
> > ../../gcc/reload1.c:268:0: note: a field with different name is defined in 
> > another translation unit
> >    HOST_WIDE_INT initial_offset; /* Initial difference between values.  */
> >  ^
> > ../../gcc/tree-ssa-ccp.c:169:0: warning: type ‘struct prop_value_d’ 
> > violates one definition rule [-Wodr]
> >  struct prop_value_d {
> >  ^
> > ../../gcc/tree-ssa-copy.c:79:0: note: a different type is defined in 
> > another translation unit
> >  struct prop_value_d {
> >  ^
> > ../../gcc/tree-ssa-ccp.c:171:0: note: the first difference of corresponding 
> > definitions is field ‘lattice_val’
> >      ccp_lattice_t lattice_val;
> >  ^
> > ../../gcc/tree-ssa-copy.c:81:0: note: a field with different name is 
> > defined in another translation unit
> >      tree value;
> >  ^
> > ../../gcc/profile.h:26:0: warning: type ‘struct edge_info’ violates one 
> > definition rule [-Wodr]
> >  struct edge_info
> >  ^
> > ../../gcc/tree-ssa-dom.c:113:0: note: a different type is defined in 
> > another translation unit
> >  struct edge_info
> >  ^
> > ../../gcc/profile.h:28:0: note: the first difference of corresponding 
> > definitions is field ‘count_valid’
> >    unsigned int count_valid:1;
> >  ^
> > ../../gcc/tree-ssa-dom.c:117:0: note: a field with different name is 
> > defined in another translation unit
> >    tree lhs;
> >  ^
> > ../../gcc/tree-ssa-loop-im.c:119:0: warning: type ‘struct mem_ref’ violates 
> > one definition rule [-Wodr]
> >  typedef struct mem_ref
> >  ^
> > ../../gcc/tree-ssa-loop-prefetch.c:271:0: note: a different type is defined 
> > in another translation unit
> >  struct mem_ref
> >  ^
> > ../../gcc/tree-ssa-loop-im.c:121:0: note: the first difference of 
> > corresponding definitions is field ‘id’
> >    unsigned id;   /* ID assigned to the memory reference
> >  ^
> > ../../gcc/tree-ssa-loop-prefetch.c:273:0: note: a field with different name 
> > is defined in another translation unit
> >    gimple stmt;   /* Statement in that the reference appears.  */
> >  ^
> > ../../gcc/bitmap.c:2146:8: warning: type ‘struct output_info’ violates one 
> > definition rule [-Wodr]
> >  struct output_info
> >         ^
> > ../../gcc/alloc-pool.c:342:0: note: a different type is defined in another 
> > translation unit
> >  struct output_info
> >  ^
> > ../../gcc/bitmap.c:2148:12: note: the first difference of corresponding 
> > definitions is field ‘size’
> >    uint64_t size;
> >             ^
> > ../../gcc/alloc-pool.c:344:0: note: a field with different name is defined 
> > in another translation unit
> >    unsigned long total_created;
> >  ^
> > ../../gcc/gcse.c:320:0: warning: type ‘struct hash_table_d’ violates one 
> > definition rule [-Wodr]
> >  struct hash_table_d
> >  ^
> > ../../gcc/cprop.c:96:0: note: a different type is defined in another 
> > translation unit
> >  struct hash_table_d
> >  ^
> > ../../gcc/gcse.c:324:0: note: the first difference of corresponding 
> > definitions is field ‘table’
> >    struct expr **table;
> >  ^
> > ../../gcc/cprop.c:100:0: note: a field of same name but different type is 
> > defined in another translation unit
> >    struct expr **table;
> >  ^
> > ../../gcc/profile.c:77:0: warning: type ‘struct bb_info’ violates one 
> > definition rule [-Wodr]
> >  struct bb_info {
> >  ^
> > ../../gcc/dse.c:424:0: note: a different type is defined in another 
> > translation unit
> >  struct bb_info
> >  ^
> > ../../gcc/profile.c:78:0: note: the first difference of corresponding 
> > definitions is field ‘count_valid’
> >    unsigned int count_valid : 1;
> >  ^
> > ../../gcc/dse.c:430:0: note: a field with different name is defined in 
> > another translation unit
> >    insn_info_t last_insn;
> >  ^
> > ../../gcc/tree-ssa-structalias.c:1526:0: warning: type ‘struct topo_info’ 
> > violates one definition rule [-Wodr]
> >  struct topo_info
> >  ^
> > ../../gcc/ipa-cp.c:577:0: note: a different type is defined in another 
> > translation unit
> >  {
> >  ^
> > ../../gcc/tree-ssa-structalias.c:1529:0: note: the first difference of 
> > corresponding definitions is field ‘visited’
> >    sbitmap visited;
> >  ^
> > ../../gcc/ipa-cp.c:577:0: note: a field with different name is defined in 
> > another translation unit
> >  {
> >  ^
> > ../../gcc/ggc-common.c:945:0: warning: type ‘struct ptr_hash_entry’ 
> > violates one definition rule [-Wodr]
> >  struct ptr_hash_entry
> >  ^
> > ../../gcc/vec.c:83:0: note: a different type is defined in another 
> > translation unit
> >    void *ptr;
> >  ^
> > ../../gcc/ggc-common.c:948:0: note: the first difference of corresponding 
> > definitions is field ‘loc’
> >    struct loc_descriptor *loc;
> >  ^
> > ../../gcc/vec.c:83:0: note: a field of same name but different type is 
> > defined in another translation unit
> >    void *ptr;
> >  ^
> > ../../gcc/cp/mangle.c:93:0: warning: type ‘struct globals’ violates one 
> > definition rule [-Wodr]
> >  typedef struct GTY(()) globals {
> >  ^
> > ../../gcc/ggc-page.c:381:0: note: a different type is defined in another 
> > translation unit
> >  static struct globals
> >  ^
> > ../../gcc/cp/mangle.c:96:0: note: the first difference of corresponding 
> > definitions is field ‘substitutions’
> >    vec<tree, va_gc> *substitutions;
> >  ^
> > ../../gcc/ggc-page.c:387:0: note: a field with different name is defined in 
> > another translation unit
> >    page_entry *pages[NUM_ORDERS];
> >  ^
> > ../../gcc/alloc-pool.c:342:0: warning: type ‘struct output_info’ violates 
> > one definition rule [-Wodr]
> >  struct output_info
> >  ^
> > ../../gcc/bitmap.c:2146:0: note: a different type is defined in another 
> > translation unit
> >  struct output_info
> >  ^
> > ../../gcc/alloc-pool.c:344:0: note: the first difference of corresponding 
> > definitions is field ‘total_created’
> >    unsigned long total_created;
> >  ^
> > ../../gcc/bitmap.c:2148:0: note: a field with different name is defined in 
> > another translation unit
> >    uint64_t size;
> >  ^
> > ../../gcc/ipa-devirt.c:2674:0: warning: type ‘struct type_change_info’ 
> > violates one definition rule [-Wodr]
> >  struct type_change_info
> >  ^
> > ../../gcc/ipa-prop.c:595:0: note: a different type is defined in another 
> > translation unit
> >  struct type_change_info
> >  ^
> > ../../gcc/ipa-devirt.c:2681:0: note: the first difference of corresponding 
> > definitions is field ‘instance’
> >    tree instance;
> >  ^
> > ../../gcc/ipa-prop.c:602:0: note: a field with different name is defined in 
> > another translation unit
> >    tree object;
> >  ^
> > ../../gcc/gcse.c:294:0: warning: type ‘struct occr’ violates one definition 
> > rule [-Wodr]
> >  struct occr
> >  ^
> > ../../gcc/postreload-gcse.c:160:0: note: a different type is defined in 
> > another translation unit
> >  struct occr
> >  ^
> > ../../gcc/gcse.c:297:0: note: the first difference of corresponding 
> > definitions is field ‘next’
> >    struct occr *next;
> >  ^
> > ../../gcc/postreload-gcse.c:163:0: note: a field of same name but different 
> > type is defined in another translation unit
> >    struct occr *next;
> >  ^
> > ../../gcc/gcse.c:259:0: warning: type ‘struct expr’ violates one definition 
> > rule [-Wodr]
> >  struct expr
> >  ^
> > ../../gcc/postreload-gcse.c:92:0: note: a different type is defined in 
> > another translation unit
> >  struct expr
> >  ^
> > ../../gcc/gcse.c:264:0: note: the first difference of corresponding 
> > definitions is field ‘bitmap_index’
> >    int bitmap_index;
> >  ^
> > ../../gcc/postreload-gcse.c:98:0: note: a field with different name is 
> > defined in another translation unit
> >    hashval_t hash;
> >  ^
> > ../../gcc/predict.c:2499:0: warning: type ‘struct block_info_def’ violates 
> > one definition rule [-Wodr]
> >  typedef struct block_info_def
> >  ^
> > ../../gcc/reg-stack.c:208:0: note: a different type is defined in another 
> > translation unit
> >  typedef struct block_info_def
> >  ^
> > ../../gcc/predict.c:2502:0: note: the first difference of corresponding 
> > definitions is field ‘frequency’
> >    sreal frequency;
> >  ^
> > ../../gcc/reg-stack.c:210:0: note: a field with different name is defined 
> > in another translation unit
> >    struct stack_def stack_in; /* Input stack configuration.  */
> >  ^
> > ../../gcc/lra-eliminations.c:80:0: warning: type ‘struct elim_table’ 
> > violates one definition rule [-Wodr]
> >  struct elim_table
> >  ^
> > ../../gcc/reload1.c:264:0: note: a different type is defined in another 
> > translation unit
> >  struct elim_table
> >  ^
> > ../../gcc/lra-eliminations.c:88:0: note: the first difference of 
> > corresponding definitions is field ‘previous_offset’
> >    HOST_WIDE_INT previous_offset;
> >  ^
> > ../../gcc/reload1.c:268:0: note: a field with different name is defined in 
> > another translation unit
> >    HOST_WIDE_INT initial_offset; /* Initial difference between values.  */
> >  ^
> > ../../gcc/cp/semantics.c:4075:0: warning: type ‘struct nrv_data’ violates 
> > one definition rule [-Wodr]
> >  struct nrv_data
> >  ^
> > ../../gcc/tree-nrv.c:58:0: note: a different type is defined in another 
> > translation unit
> >  struct nrv_data
> >  ^
> > ../../gcc/cp/semantics.c:4081:0: note: the first difference of 
> > corresponding definitions is field ‘visited’
> >    hash_table<pointer_hash <tree_node> > visited;
> >  ^
> > ../../gcc/tree-nrv.c:67:0: note: a field with different name is defined in 
> > another translation unit
> >    int modified;
> >  ^
> > ../../gcc/tree-ssa-ccp.c:169:0: warning: type ‘struct prop_value_d’ 
> > violates one definition rule [-Wodr]
> >  struct prop_value_d {
> >  ^
> > ../../gcc/tree-ssa-copy.c:79:0: note: a different type is defined in 
> > another translation unit
> >  struct prop_value_d {
> >  ^
> > ../../gcc/tree-ssa-ccp.c:171:0: note: the first difference of corresponding 
> > definitions is field ‘lattice_val’
> >      ccp_lattice_t lattice_val;
> >  ^
> > ../../gcc/tree-ssa-copy.c:81:0: note: a field with different name is 
> > defined in another translation unit
> >      tree value;
> >  ^
> > ../../gcc/profile.h:26:0: warning: type ‘struct edge_info’ violates one 
> > definition rule [-Wodr]
> >  struct edge_info
> >  ^
> > ../../gcc/tree-ssa-dom.c:113:0: note: a different type is defined in 
> > another translation unit
> >  struct edge_info
> >  ^
> > ../../gcc/profile.h:28:0: note: the first difference of corresponding 
> > definitions is field ‘count_valid’
> >    unsigned int count_valid:1;
> >  ^
> > ../../gcc/tree-ssa-dom.c:117:0: note: a field with different name is 
> > defined in another translation unit
> >    tree lhs;
> >  ^
> > ../../gcc/tree-ssa-loop-im.c:119:0: warning: type ‘struct mem_ref’ violates 
> > one definition rule [-Wodr]
> >  typedef struct mem_ref
> >  ^
> > ../../gcc/tree-ssa-loop-prefetch.c:271:0: note: a different type is defined 
> > in another translation unit
> >  struct mem_ref
> >  ^
> > ../../gcc/tree-ssa-loop-im.c:121:0: note: the first difference of 
> > corresponding definitions is field ‘id’
> >    unsigned id;   /* ID assigned to the memory reference
> >  ^
> > ../../gcc/tree-ssa-loop-prefetch.c:273:0: note: a field with different name 
> > is defined in another translation unit
> >    gimple stmt;   /* Statement in that the reference appears.  */
> >  ^
> > ../../gcc/gcse.c:320:0: warning: type ‘struct hash_table_d’ violates one 
> > definition rule [-Wodr]
> >  struct hash_table_d
> >  ^
> > ../../gcc/cprop.c:58:0: note: a different type is defined in another 
> > translation unit
> >  struct occr
> >  ^
> > ../../gcc/gcse.c:324:0: note: the first difference of corresponding 
> > definitions is field ‘table’
> >    struct expr **table;
> >  ^
> > ../../gcc/cprop.c:58:0: note: a field of same name but different type is 
> > defined in another translation unit
> >  struct occr
> >  ^
> > ../../gcc/profile.c:77:0: warning: type ‘struct bb_info’ violates one 
> > definition rule [-Wodr]
> >  struct bb_info {
> >  ^
> > ../../gcc/dse.c:1079:0: note: a different type is defined in another 
> > translation unit
> >  free_read_records (bb_info_t bb_info)
> >  ^
> > ../../gcc/profile.c:78:0: note: the first difference of corresponding 
> > definitions is field ‘count_valid’
> >    unsigned int count_valid : 1;
> >  ^
> > ../../gcc/dse.c:1079:0: note: a field with different name is defined in 
> > another translation unit
> >  free_read_records (bb_info_t bb_info)
> >  ^
> > ../../gcc/tree-ssa-structalias.c:1526:0: warning: type ‘struct topo_info’ 
> > violates one definition rule [-Wodr]
> >  struct topo_info
> >  ^
> > ../../gcc/ipa-cp.c:577:0: note: a different type is defined in another 
> > translation unit
> >  {
> >  ^
> > ../../gcc/tree-ssa-structalias.c:1529:0: note: the first difference of 
> > corresponding definitions is field ‘visited’
> >    sbitmap visited;
> >  ^
> > ../../gcc/ipa-cp.c:577:0: note: a field with different name is defined in 
> > another translation unit
> >  {
> >  ^
> > ../../gcc/ggc-common.c:945:0: warning: type ‘struct ptr_hash_entry’ 
> > violates one definition rule [-Wodr]
> >  struct ptr_hash_entry
> >  ^
> > ../../gcc/vec.c:83:0: note: a different type is defined in another 
> > translation unit
> >    void *ptr;
> >  ^
> > ../../gcc/ggc-common.c:948:0: note: the first difference of corresponding 
> > definitions is field ‘loc’
> >    struct loc_descriptor *loc;
> >  ^
> > ../../gcc/vec.c:83:0: note: a field of same name but different type is 
> > defined in another translation unit
> >    void *ptr;
> >  ^
> > ../../gcc/cp/call.c:83:8: warning: type ‘struct conversion’ violates one 
> > definition rule [-Wodr]
> >  struct conversion {
> >         ^
> > ../../libcpp/charset.c:613:0: note: a different type is defined in another 
> > translation unit
> >    const char *pair;
> >  ^
> > ../../gcc/cp/call.c:85:19: note: the first difference of corresponding 
> > definitions is field ‘kind’
> >    conversion_kind kind;
> >                    ^
> > ../../libcpp/charset.c:613:0: note: a field with different name is defined 
> > in another translation unit
> >    const char *pair;
> >  ^
> > ../../gcc/alloc-pool.c:342:0: warning: type ‘struct output_info’ violates 
> > one definition rule [-Wodr]
> >  struct output_info
> >  ^
> > ../../gcc/bitmap.c:2146:0: note: a different type is defined in another 
> > translation unit
> >  struct output_info
> >  ^
> > ../../gcc/alloc-pool.c:344:0: note: the first difference of corresponding 
> > definitions is field ‘total_created’
> >    unsigned long total_created;
> >  ^
> > ../../gcc/bitmap.c:2148:0: note: a field with different name is defined in 
> > another translation unit
> >    uint64_t size;
> >  ^
> > ../../gcc/ipa-devirt.c:2674:0: warning: type ‘struct type_change_info’ 
> > violates one definition rule [-Wodr]
> >  struct type_change_info
> >  ^
> > ../../gcc/ipa-prop.c:595:0: note: a different type is defined in another 
> > translation unit
> >  struct type_change_info
> >  ^
> > ../../gcc/ipa-devirt.c:2681:0: note: the first difference of corresponding 
> > definitions is field ‘instance’
> >    tree instance;
> >  ^
> > ../../gcc/ipa-prop.c:602:0: note: a field with different name is defined in 
> > another translation unit
> >    tree object;
> >  ^
> > ../../gcc/gcse.c:294:0: warning: type ‘struct occr’ violates one definition 
> > rule [-Wodr]
> >  struct occr
> >  ^
> > ../../gcc/postreload-gcse.c:160:0: note: a different type is defined in 
> > another translation unit
> >  struct occr
> >  ^
> > ../../gcc/gcse.c:297:0: note: the first difference of corresponding 
> > definitions is field ‘next’
> >    struct occr *next;
> >  ^
> > ../../gcc/postreload-gcse.c:163:0: note: a field of same name but different 
> > type is defined in another translation unit
> >    struct occr *next;
> >  ^
> > ../../gcc/gcse.c:259:0: warning: type ‘struct expr’ violates one definition 
> > rule [-Wodr]
> >  struct expr
> >  ^
> > ../../gcc/postreload-gcse.c:92:0: note: a different type is defined in 
> > another translation unit
> >  struct expr
> >  ^
> > ../../gcc/gcse.c:264:0: note: the first difference of corresponding 
> > definitions is field ‘bitmap_index’
> >    int bitmap_index;
> >  ^
> > ../../gcc/postreload-gcse.c:98:0: note: a field with different name is 
> > defined in another translation unit
> >    hashval_t hash;
> >  ^
> > ../../gcc/predict.c:2499:0: warning: type ‘struct block_info_def’ violates 
> > one definition rule [-Wodr]
> >  typedef struct block_info_def
> >  ^
> > ../../gcc/reg-stack.c:208:0: note: a different type is defined in another 
> > translation unit
> >  typedef struct block_info_def
> >  ^
> > ../../gcc/predict.c:2502:0: note: the first difference of corresponding 
> > definitions is field ‘frequency’
> >    sreal frequency;
> >  ^
> > ../../gcc/reg-stack.c:210:0: note: a field with different name is defined 
> > in another translation unit
> >    struct stack_def stack_in; /* Input stack configuration.  */
> >  ^
> > ../../gcc/lra-eliminations.c:80:0: warning: type ‘struct elim_table’ 
> > violates one definition rule [-Wodr]
> >  struct elim_table
> >  ^
> > ../../gcc/reload1.c:264:0: note: a different type is defined in another 
> > translation unit
> >  struct elim_table
> >  ^
> > ../../gcc/lra-eliminations.c:88:0: note: the first difference of 
> > corresponding definitions is field ‘previous_offset’
> >    HOST_WIDE_INT previous_offset;
> >  ^
> > ../../gcc/reload1.c:268:0: note: a field with different name is defined in 
> > another translation unit
> >    HOST_WIDE_INT initial_offset; /* Initial difference between values.  */
> >  ^
> > ../../gcc/tree-ssa-ccp.c:169:0: warning: type ‘struct prop_value_d’ 
> > violates one definition rule [-Wodr]
> >  struct prop_value_d {
> >  ^
> > ../../gcc/tree-ssa-copy.c:79:0: note: a different type is defined in 
> > another translation unit
> >  struct prop_value_d {
> >  ^
> > ../../gcc/tree-ssa-ccp.c:171:0: note: the first difference of corresponding 
> > definitions is field ‘lattice_val’
> >      ccp_lattice_t lattice_val;
> >  ^
> > ../../gcc/tree-ssa-copy.c:81:0: note: a field with different name is 
> > defined in another translation unit
> >      tree value;
> >  ^
> > ../../gcc/profile.h:26:0: warning: type ‘struct edge_info’ violates one 
> > definition rule [-Wodr]
> >  struct edge_info
> >  ^
> > ../../gcc/tree-ssa-dom.c:113:0: note: a different type is defined in 
> > another translation unit
> >  struct edge_info
> >  ^
> > ../../gcc/profile.h:28:0: note: the first difference of corresponding 
> > definitions is field ‘count_valid’
> >    unsigned int count_valid:1;
> >  ^
> > ../../gcc/tree-ssa-dom.c:117:0: note: a field with different name is 
> > defined in another translation unit
> >    tree lhs;
> >  ^
> > ../../gcc/tree-ssa-loop-im.c:119:0: warning: type ‘struct mem_ref’ violates 
> > one definition rule [-Wodr]
> >  typedef struct mem_ref
> >  ^
> > ../../gcc/tree-ssa-loop-prefetch.c:271:0: note: a different type is defined 
> > in another translation unit
> >  struct mem_ref
> >  ^
> > ../../gcc/tree-ssa-loop-im.c:121:0: note: the first difference of 
> > corresponding definitions is field ‘id’
> >    unsigned id;   /* ID assigned to the memory reference
> >  ^
> > ../../gcc/tree-ssa-loop-prefetch.c:273:0: note: a field with different name 
> > is defined in another translation unit
> >    gimple stmt;   /* Statement in that the reference appears.  */
> >  ^
> > ../../gcc/gcse.c:320:0: warning: type ‘struct hash_table_d’ violates one 
> > definition rule [-Wodr]
> >  struct hash_table_d
> >  ^
> > ../../gcc/cprop.c:58:0: note: a different type is defined in another 
> > translation unit
> >  struct occr
> >  ^
> > ../../gcc/gcse.c:324:0: note: the first difference of corresponding 
> > definitions is field ‘table’
> >    struct expr **table;
> >  ^
> > ../../gcc/cprop.c:58:0: note: a field of same name but different type is 
> > defined in another translation unit
> >  struct occr
> >  ^
> > ../../gcc/profile.c:77:0: warning: type ‘struct bb_info’ violates one 
> > definition rule [-Wodr]
> >  struct bb_info {
> >  ^
> > ../../gcc/dse.c:1079:0: note: a different type is defined in another 
> > translation unit
> >  free_read_records (bb_info_t bb_info)
> >  ^
> > ../../gcc/profile.c:78:0: note: the first difference of corresponding 
> > definitions is field ‘count_valid’
> >    unsigned int count_valid : 1;
> >  ^
> > ../../gcc/dse.c:1079:0: note: a field with different name is defined in 
> > another translation unit
> >  free_read_records (bb_info_t bb_info)
> >  ^
> > ../../gcc/tree-ssa-structalias.c:1526:0: warning: type ‘struct topo_info’ 
> > violates one definition rule [-Wodr]
> >  struct topo_info
> >  ^
> > ../../gcc/ipa-cp.c:577:0: note: a different type is defined in another 
> > translation unit
> >  {
> >  ^
> > ../../gcc/tree-ssa-structalias.c:1529:0: note: the first difference of 
> > corresponding definitions is field ‘visited’
> >    sbitmap visited;
> >  ^
> > ../../gcc/ipa-cp.c:577:0: note: a field with different name is defined in 
> > another translation unit
> >  {
> >  ^
> > ../../gcc/ggc-common.c:945:0: warning: type ‘struct ptr_hash_entry’ 
> > violates one definition rule [-Wodr]
> >  struct ptr_hash_entry
> >  ^
> > ../../gcc/vec.c:83:0: note: a different type is defined in another 
> > translation unit
> >    void *ptr;
> >  ^
> > ../../gcc/ggc-common.c:948:0: note: the first difference of corresponding 
> > definitions is field ‘loc’
> >    struct loc_descriptor *loc;
> >  ^
> > ../../gcc/vec.c:83:0: note: a field of same name but different type is 
> > defined in another translation unit
> >    void *ptr;
> >  ^
> > /usr/bin/ld.gold.real: warning: using 'GLIBCXX_3.4' as version for 
> > '_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv' which is also 
> > named in version 'GLIBCXX_3.4.6' in script
> > /usr/bin/ld.gold.real: warning: using 'GLIBCXX_3.4' as version for 
> > '_ZNKSs11_M_disjunctEPKc' which is also named in version 'GLIBCXX_3.4.5' in 
> > script
> > /usr/bin/ld.gold.real: warning: using 'GLIBCXX_3.4' as version for 
> > '_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw' which is also named in 
> > version 'GLIBCXX_3.4.5' in script
> > make[2]: *** [compare] Error 1
> > make[1]: *** [stage3-bubble] Error 2
> > make: *** [all] Error 2

Reply via email to