tree-optimization/106912 - clear const attribute from fntype
authorRichard Biener <rguenther@suse.de>
Thu, 16 Mar 2023 12:51:19 +0000 (13:51 +0100)
committerRichard Biener <rguenther@suse.de>
Fri, 24 Mar 2023 12:52:38 +0000 (13:52 +0100)
commited626f18b189920aeed9974aded3f9cb6f25b543
tree440c930adc2b51b154f7d9fa28c6fa954a3e5a05
parentfe6e61fb236e1ac764a7f044ae80ddf458e981a6
tree-optimization/106912 - clear const attribute from fntype

The following makes sure that after clearing pure/const from
instrumented function declarations we are adjusting call statements
fntype as well to handle indirect calls and because gimple_call_flags
looks at both decl and fntype.

Like the pure/const flag clearing on decls we refrain from touching
calls to known functions that do not have a body in the current TU.

PR tree-optimization/106912
* tree-profile.cc (tree_profiling): Update stmts only when
profiling or testing coverage.  Make sure to update calls
fntype, stripping 'const' there.

* gcc.dg/profile-generate-4.c: New testcase.
gcc/testsuite/gcc.dg/profile-generate-4.c [new file with mode: 0644]
gcc/tree-profile.cc