diff options
author | Martin Liska <mliska@suse.cz> | 2016-07-22 12:19:57 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2016-07-22 10:19:57 +0000 |
commit | bc91c4361527fb229ad47f20a45de0b3160f2de9 (patch) | |
tree | 7d61a4e799f8e9fba5938c4b59cb017add066d75 | |
parent | 9fe9a3a780c9cd8f5fa45e162640b7169c27fe8f (diff) | |
download | gcc-bc91c4361527fb229ad47f20a45de0b3160f2de9.zip gcc-bc91c4361527fb229ad47f20a45de0b3160f2de9.tar.gz gcc-bc91c4361527fb229ad47f20a45de0b3160f2de9.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/c-family/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/c-family/cilk.c | 5 | ||||
-rw-r--r-- | gcc/coverage.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cilk-plus/pr69028.C | 13 |
6 files changed, 41 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 36104da..f889abd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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... diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index e244e8a..ba6093a 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -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 diff --git a/gcc/c-family/cilk.c b/gcc/c-family/cilk.c index 8f34cd6..39781c4 100644 --- a/gcc/c-family/cilk.c +++ b/gcc/c-family/cilk.c @@ -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; diff --git a/gcc/coverage.c b/gcc/coverage.c index 67cc908..d4d371e 100644 --- a/gcc/coverage.c +++ b/gcc/coverage.c @@ -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) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 662eda6..656a6c2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. diff --git a/gcc/testsuite/g++.dg/cilk-plus/pr69028.C b/gcc/testsuite/g++.dg/cilk-plus/pr69028.C new file mode 100644 index 0000000..31542f3 --- /dev/null +++ b/gcc/testsuite/g++.dg/cilk-plus/pr69028.C @@ -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; +} |