aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/c-family/ChangeLog7
-rw-r--r--gcc/c-family/cilk.c5
-rw-r--r--gcc/coverage.c6
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/cilk-plus/pr69028.C13
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;
+}