Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.3
gcc41
Wprofile-mismatch.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File Wprofile-mismatch.patch of Package gcc41
2006-11-23 Richard Guenther <rguenther@suse.de> * doc/invoke.texi (-Wcoverage-mismatch): Document. * common.opt (-Wcoverage-mismatch): New warning option. * coverage.c (get_coverage_counts): Ignore coverage mismatch if -Wcoverage-mismatch is given. Index: gcc/doc/invoke.texi =================================================================== *** gcc/doc/invoke.texi (revision 119120) --- gcc/doc/invoke.texi (working copy) *************** Objective-C and Objective-C++ Dialects}. *** 220,226 **** @gccoptlist{-fsyntax-only -pedantic -pedantic-errors @gol -w -Wextra -Wall -Waggregate-return -Wno-attributes @gol -Wc++-compat -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment @gol ! -Wconversion -Wno-deprecated-declarations @gol -Wdisabled-optimization -Wno-div-by-zero -Wno-endif-labels @gol -Werror -Werror-implicit-function-declaration @gol -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol --- 220,226 ---- @gccoptlist{-fsyntax-only -pedantic -pedantic-errors @gol -w -Wextra -Wall -Waggregate-return -Wno-attributes @gol -Wc++-compat -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment @gol ! -Wconversion -Wcoverage-mismatch -Wno-deprecated-declarations @gol -Wdisabled-optimization -Wno-div-by-zero -Wno-endif-labels @gol -Werror -Werror-implicit-function-declaration @gol -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol *************** Make all warnings into errors. *** 3400,3405 **** --- 3400,3417 ---- This option is only active when @option{-fstack-protector} is active. It warns about functions that will not be protected against stack smashing. + @item -Wcoverage-mismatch + @opindex Wcoverage-mismatch + Warn if feedback profiles do not match when using the + @option{-fprofile-use} option. + If a source file was changed between @option{-fprofile-gen} and + @option{-fprofile-use}, the files with the profile feedback do not + match the source file and GCC can not use the profile feedback + information. By default, GCC emits an error message in this case. + The option @option{-Wcoverage-mismatch} emits a warning instead of an + error. GCC does not use appropriate feedback profiles, but the + compilation runs without errors. + @end table @node Debugging Options *************** The following options are enabled: @code *** 5395,5400 **** --- 5407,5415 ---- @code{-funroll-loops}, @code{-fpeel-loops}, @code{-ftracer}, @code{-fno-loop-optimize}. + By default, GCC emits an error message if the feedback profiles do not + match. The error abort can be avoided by using + @option{-Wcoverage-mismatch}. @end table The following options control compiler behavior regarding floating Index: gcc/coverage.c =================================================================== *** gcc/coverage.c (revision 119120) --- gcc/coverage.c (working copy) *************** get_coverage_counts (unsigned counter, u *** 351,370 **** } checksum = compute_checksum (); ! if (entry->checksum != checksum) { ! error ("coverage mismatch for function %qs while reading counter %qs", ! IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (current_function_decl)), ! ctr_names[counter]); ! error ("checksum is %x instead of %x", entry->checksum, checksum); ! return 0; ! } ! else if (entry->summary.num != expected) ! { ! error ("coverage mismatch for function %qs while reading counter %qs", ! IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (current_function_decl)), ! ctr_names[counter]); ! error ("number of counters is %d instead of %d", entry->summary.num, expected); return 0; } --- 351,381 ---- } checksum = compute_checksum (); ! if (entry->checksum != checksum ! || entry->summary.num != expected) { ! const char *id = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME ! (current_function_decl)); ! ! if (warn_coverage_mismatch) ! warning (OPT_Wcoverage_mismatch, "coverage mismatch for function " ! "%qs while reading counter %qs", id, ctr_names[counter]); ! else ! error ("coverage mismatch for function %qs while reading counter %qs", ! id, ctr_names[counter]); ! ! if (entry->checksum != checksum) ! inform ("checksum is %x instead of %x", entry->checksum, checksum); ! else ! inform ("number of counters is %d instead of %d", ! entry->summary.num, expected); ! ! if (warn_coverage_mismatch) ! { ! inform ("coverage mismatch ignored due to -Wcoverage-mismatch"); ! inform ("execution counts assumed to be zero"); ! } ! return 0; } Index: gcc/common.opt =================================================================== *** gcc/common.opt (revision 119120) --- gcc/common.opt (working copy) *************** Wvolatile-register-var *** 177,182 **** --- 177,186 ---- Common Var(warn_register_var) Warn when a register variable is declared volatile + Wcoverage-mismatch + Common Var(warn_coverage_mismatch) + Warn when profiles in -fprofile-use do not match + aux-info Common Separate -aux-info <file> Emit declaration information into <file>
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor