ipa-utils.h (warn_types_mismatch, [...]): Declare.
authorJan Hubicka <hubicka@gcc.gnu.org>
Sat, 16 May 2015 23:18:29 +0000 (23:18 +0000)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sat, 16 May 2015 23:18:29 +0000 (23:18 +0000)
commit259d29e396dbee07d0211196cd212c3464c5c325
tree50d7960821ec80bd6136c7a2e9106406f64e8633
parent4d259d334e0a55382654f511a64d43089eccf569
ipa-utils.h (warn_types_mismatch, [...]): Declare.

* ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
odr_types_equivalent_p): Declare.
(odr_type_p): Use gcc_checking_assert.
(type_in_anonymous_namespace_p) Declare.
(type_with_linkage_p): Declare.
* common.opt (Wlto-type-mismatch): New warning.
* ipa-devirt.c (compound_type_base): New function.
(odr_or_derived_type_p): New function.
(odr_types_equivalent_p): New function.
(add_type_duplicate): Simplify.
(type_with_linkage_p): Add hack to prevent false positives on C types
(type_in_anonymous_namespace_p): Likewise.
* tree.c (need_assembler_name_p): Use type_with_linkage.
* tree.h (type_in_anonymous_namespace_p): Remove.
* doc/invoke.texi (-Wlto-type-mismatch): Document

* lto-symtab.c (warn_type_compatibility_p): Break out from ...;
compare ODR types (if available) and function types.
(lto_symtab_merge): ... here; output ODR violation warnings
and call warn_types_mismatch.

* gfortran.dg/lto/20091028-2_1.c: Fix return value.
* gfortran.dg/lto/pr41576_1.f90: Add interface.
* gfortran.dg/lto/pr41521_0.f90: Disable lto-type-mismatch
* gfortran.dg/lto/pr60635_0.f90: Disable lto-type-mismatch.
* gfortran.dg/lto/20091028-1_1.c: Fix return type.
* gcc.dg/lto/20120723_0.c: Disbale lto-type-mismatch.

From-SVN: r223258
16 files changed:
gcc/common.opt
gcc/doc/invoke.texi
gcc/ipa-devirt.c
gcc/ipa-utils.h
gcc/lto/ChangeLog
gcc/lto/lto-symtab.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/lto/20120723_0.c
gcc/testsuite/gfortran.dg/lto/20091028-1_1.c
gcc/testsuite/gfortran.dg/lto/20091028-2_1.c
gcc/testsuite/gfortran.dg/lto/pr41521_0.f90
gcc/testsuite/gfortran.dg/lto/pr41576_0.f90
gcc/testsuite/gfortran.dg/lto/pr41576_1.f90
gcc/testsuite/gfortran.dg/lto/pr60635_0.f90
gcc/tree.c
gcc/tree.h