On 09/12/2014 07:40 AM, Jan Hubicka 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?

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


Hello.

I've just finished successfully chromium LTO build and there's list of mainly 
-Wodr warnings.
I think some of them are false positives?

Thanks,
Martin
../../third_party/WebKit/public/platform/WebCryptoAlgorithmParams.h:295:0: 
warning: type ‘struct WebCryptoEcKeyImportParams’ violates one definition rule 
[-Wodr]
 class WebCryptoEcKeyImportParams : public WebCryptoAlgorithmParams {
 ^
../../third_party/WebKit/public/platform/WebCryptoAlgorithmParams.h:295:0: 
note: a different type is defined in another translation unit
 class WebCryptoEcKeyImportParams : public WebCryptoAlgorithmParams {
 ^
../../third_party/WebKit/public/platform/WebCryptoAlgorithmParams.h:307:0: 
note: the first difference of corresponding definitions is field ‘m_namedCurve’
     const WebCryptoNamedCurve m_namedCurve;
 ^
../../third_party/WebKit/public/platform/WebCryptoAlgorithmParams.h:295:0: 
note: a field of same name but different type is defined in another translation 
unit
 class WebCryptoEcKeyImportParams : public WebCryptoAlgorithmParams {
 ^
../../third_party/WebKit/public/platform/WebCryptoAlgorithm.h:78:0: note: type 
‘const WebCryptoNamedCurve’ should match type ‘const WebCryptoNamedCurve’
 enum WebCryptoNamedCurve {
 ^
../../third_party/WebKit/public/platform/WebCryptoAlgorithm.h:63:0: note: the 
incompatible type is defined here
     WebCryptoAlgorithmIdSha256,
 ^
../../ui/events/event.h:631:0: warning: type ‘struct KeyEvent’ violates one 
definition rule [-Wodr]
 class EVENTS_EXPORT KeyEvent : public Event {
 ^
../../ui/events/event.h:758:0: note: a different type is defined in another 
translation unit
   KeyboardCode key_code_;
 ^
../../ui/events/event.h:765:0: note: the first difference of corresponding 
definitions is field ‘code_’
   DomCode code_;
 ^
../../ui/events/event.h:758:0: note: a field of same name but different type is 
defined in another translation unit
   KeyboardCode key_code_;
 ^
../../ui/events/event.h:29:0: note: type ‘DomCode’ should match type ‘DomCode’
 enum class DomCode;
 ^
../../ui/events/keycodes/dom4/keycode_converter_data.h:17:0: note: the 
incompatible type is defined here
 USB_KEYMAP_DECLARATION {
 ^
../../third_party/icu/source/i18n/unicode/fieldpos.h:106:0: warning: virtual 
table of type ‘struct FieldPosition’ violates one definition rule  
 class U_I18N_API FieldPosition : public UObject {
 ^
../../third_party/icu/source/i18n/unicode/fieldpos.h:106:0: note: the 
conflicting type defined in another translation unit
 class U_I18N_API FieldPosition : public UObject {
 ^
../../third_party/icu/source/i18n/unicode/fieldpos.h:106:0: note: virtual 
method ‘_ZTIN6icu_5213FieldPositionE’
 class U_I18N_API FieldPosition : public UObject {
 ^
../../third_party/icu/source/i18n/format.cpp:125:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 Format::format(const Formattable& /* unused obj */,
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: warning: virtual 
table of type ‘struct UObject’ violates one definition rule  
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/unicode/uobject.h:221:0: note: virtual 
method ‘_ZTIN6icu_527UObjectE’
 class U_COMMON_API UObject : public UMemory {
 ^
../../third_party/icu/source/common/uobject.cpp:92:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UObject::~UObject() {}
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: warning: virtual 
table of type ‘struct UnicodeString’ violates one definition rule  
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unicode/unistr.h:245:0: note: virtual 
method ‘_ZTIN6icu_5213UnicodeStringE’
 class U_COMMON_API UnicodeString : public Replaceable
 ^
../../third_party/icu/source/common/unistr.cpp:398:0: note: ought to match 
virtual method ‘__comp_dtor ’ but does not
 UnicodeString::~UnicodeString()
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: warning: virtual table 
of type ‘struct Replaceable’ violates one definition rule  
 class U_COMMON_API Replaceable : public UObject {
 ^
../../third_party/icu/source/common/unicode/rep.h:71:0: note: the conflicting 
type defined in another translation unit
 class U_COMMON_API Replaceable : public UObject {
 ^
<built-in>: note: virtual method ‘__cxa_pure_virtual’
../../third_party/icu/source/common/uobject.cpp:94:0: note: ought to match 
virtual method ‘getDynamicClassID’ but does not
 UClassID UObject::getDynamicClassID() const { return NULL; }
 ^
../../third_party/icu/source/common/unicode/bytestream.h:48:0: warning: virtual 
table of type ‘struct ByteSink’ violates one definition rule  
 class U_COMMON_API ByteSink : public UMemory {
 ^
../../third_party/icu/source/common/unicode/bytestream.h:48:0: note: the 
conflicting type defined in another translation unit
 class U_COMMON_API ByteSink : public UMemory {
 ^
../../third_party/icu/source/common/unicode/bytestream.h:48:0: note: virtual 
method ‘_ZTIN6icu_528ByteSinkE’
 class U_COMMON_API ByteSink : public UMemory {
 ^
<built-in>: note: ought to match virtual method ‘__cxa_pure_virtual’ but does 
not
In function ‘__fread_alias’,
    inlined from 
‘_ZN21SafeBrowsingStoreFile13CheckValidityEv.part.41.constprop’ at 
../../chrome/browser/safe_browsing/safe_browsing_store_file.cc:611:0:
/usr/include/bits/stdio2.h:290:0: warning: call to ‘__fread_chk_warn’ declared 
with attribute warning: fread called with bigger size * nmemb than length of 
destination buffer
  return __fread_chk (__ptr, __bos0 (__ptr), __size, __n, __stream);
 ^
/usr/include/bits/stdio2.h:290:0: warning: call to ‘__fread_chk_warn’ declared 
with attribute warning: fread called with bigger size * nmemb than length of 
destination buffer
In function ‘__read_alias’,
    inlined from ‘GetAppOutputInternal.constprop’ at 
../../base/process/launch_posix.cc:613:0:
/usr/include/bits/unistd.h:39:0: warning: call to ‘__read_chk_warn’ declared 
with attribute warning: read called with bigger length than size of the 
destination buffer
  return __read_chk (__fd, __buf, __nbytes, __bos0 (__buf));
 ^

Reply via email to