]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/ipa-devirt.c
invoke.texi (Wsuggest-final-types, [...]): Document.
authorJan Hubicka <hubicka@ucw.cz>
Sat, 2 Aug 2014 15:13:41 +0000 (17:13 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sat, 2 Aug 2014 15:13:41 +0000 (15:13 +0000)
commit91bc34a94d157c64f82477e8cd44d55494e7b1b7
tree363affad7849abba7c8f191cdaf2dbd6f8c056a5
parentb787e7a2c2c9be2f548d4c76ec324b71859851a4
invoke.texi (Wsuggest-final-types, [...]): Document.

* doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods): Document.
* ipa-devirt.c: Include hash-map.h
(struct polymorphic_call_target_d): Add type_warning and decl_warning.
(clear_speculation): Break out of ...
(get_class_context): ... here; speed up handling obviously useless
speculations.
(odr_type_warn_count, decl_warn_count): New structures.
(final_warning_record): New structure.
(final_warning_records): New static variable.
(possible_polymorphic_call_targets): Cleanup handling of speculative info;
do not build speculation when user do not care; record info about warnings
when asked for.
(add_decl_warning): New function.
(type_warning_cmp): New function.
(decl_warning_cmp): New function.
(ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
(gate): Enable pass when warnings are requested.
* common.opt (Wsuggest-final-types, Wsuggest-final-methods): New options.

* g++.dg/warn/Wsuggest-final.C: New testcase.
* g++.dg/ipa/devirt-34.C: Fix.

From-SVN: r213518
gcc/ChangeLog
gcc/common.opt
gcc/doc/invoke.texi
gcc/ipa-devirt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/devirt-34.C
gcc/testsuite/g++.dg/warn/Wsuggest-final.C [new file with mode: 0644]
gcc/varpool.c