On 01/15/2015 06:47 AM, Jan Hubicka wrote:
>> 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?
>
> What of those you consider to be false?
> I wonder if we can print just type name so we avoid using the wrong "struct"
> in place of class...
>>
>> 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 {
>> ^
>
> The line info seems wrong here though.
>> ../../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
>
> This message also should be sanitized - we probably want to special case
> cxa_pure_virtual...
>
> Honza
>> 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));
>> ^
>>
>
Hello.
There's updated list for Chromium built with LTO.
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:79:0: note: the
incompatible type is defined here
WebCryptoNamedCurveP256,
^
../../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:631:0: note: a different type is defined in another
translation unit
class EVENTS_EXPORT KeyEvent : public Event {
^
../../ui/events/event.h:765:0: note: the first difference of corresponding
definitions is field ‘code_’
DomCode code_;
^
../../ui/events/event.h:631:0: note: a field of same name but different type is
defined in another translation unit
class EVENTS_EXPORT KeyEvent : public Event {
^
../../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