Consider functions with xloc.file == NULL (PR

PR gcov-profile/69028
	PR gcov-profile/62047
	* g++.dg/cilk-plus/pr69028.C: New test.
	PR gcov-profile/69028
	PR gcov-profile/62047
	* cilk.c (create_cilk_helper_decl): Set location of a new decl
	to the current_function_decl.
	PR gcov-profile/69028
	PR gcov-profile/62047
	* coverage.c (coverage_compute_lineno_checksum): Do not
	calculate checksum for fns w/o xloc.file.
	(coverage_compute_profile_id): Likewise.

From-SVN: r238637
This commit is contained in:
Martin Liska 2016-07-22 12:19:57 +02:00 committed by Martin Liska
parent 9fe9a3a780
commit bc91c43615
6 changed files with 41 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2016-07-22 Martin Liska <mliska@suse.cz>
PR gcov-profile/69028
PR gcov-profile/62047
* coverage.c (coverage_compute_lineno_checksum): Do not
calculate checksum for fns w/o xloc.file.
(coverage_compute_profile_id): Likewise.
2016-07-22 Georg-Johann Lay <avr@gjlay.de>
* config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...

View File

@ -1,3 +1,10 @@
2016-07-22 Martin Liska <mliska@suse.cz>
PR gcov-profile/69028
PR gcov-profile/62047
* cilk.c (create_cilk_helper_decl): Set location of a new decl
to the current_function_decl.
2016-07-21 Jason Merrill <jason@redhat.com>
PR c++/65168

View File

@ -312,8 +312,9 @@ create_cilk_helper_decl (struct wrapper_data *wd)
gcc_unreachable ();
clean_symbol_name (name);
tree fndecl = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL,
get_identifier (name), wd->fntype);
tree fndecl = build_decl (DECL_SOURCE_LOCATION (current_function_decl),
FUNCTION_DECL, get_identifier (name), wd->fntype);
TREE_PUBLIC (fndecl) = 0;
TREE_STATIC (fndecl) = 1;

View File

@ -553,7 +553,8 @@ coverage_compute_lineno_checksum (void)
= expand_location (DECL_SOURCE_LOCATION (current_function_decl));
unsigned chksum = xloc.line;
chksum = coverage_checksum_string (chksum, xloc.file);
if (xloc.file)
chksum = coverage_checksum_string (chksum, xloc.file);
chksum = coverage_checksum_string
(chksum, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (current_function_decl)));
@ -580,7 +581,8 @@ coverage_compute_profile_id (struct cgraph_node *n)
bool use_name_only = (PARAM_VALUE (PARAM_PROFILE_FUNC_INTERNAL_ID) == 0);
chksum = (use_name_only ? 0 : xloc.line);
chksum = coverage_checksum_string (chksum, xloc.file);
if (xloc.file)
chksum = coverage_checksum_string (chksum, xloc.file);
chksum = coverage_checksum_string
(chksum, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (n->decl)));
if (!use_name_only && first_global_object_name)

View File

@ -1,3 +1,9 @@
2016-07-22 Martin Liska <mliska@suse.cz>
PR gcov-profile/69028
PR gcov-profile/62047
* g++.dg/cilk-plus/pr69028.C: New test.
2016-07-22 Andre Vehreschild <vehre@gcc.gnu.org>
* gfortran.dg/coarray_stat_2.f90: New test.

View File

@ -0,0 +1,13 @@
// PR c++/69028
// { dg-require-effective-target c++11 }
// { dg-options "-fcilkplus -fprofile-arcs" }
void parallel()
{
}
int main()
{
_Cilk_spawn parallel();
_Cilk_sync;
}