Fix location of tls_wrapper_fn (PR gcov-profile/88263).

2019-01-14  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/88263
	* decl2.c (get_tls_wrapper_fn): Use DECL_SOURCE_LOCATION
	as location of the TLS wrapper.
2019-01-14  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/88263
	* g++.dg/gcov/pr88263-2.C: New test.

From-SVN: r267921
This commit is contained in:
Martin Liska 2019-01-14 19:40:34 +01:00 committed by Martin Liska
parent 97d4188719
commit 15f4e33db7
4 changed files with 39 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2019-01-14 Martin Liska <mliska@suse.cz>
PR gcov-profile/88263
* decl2.c (get_tls_wrapper_fn): Use DECL_SOURCE_LOCATION
as location of the TLS wrapper.
2019-01-12 Paolo Carlini <paolo.carlini@oracle.com>
* decl.c (cp_finish_decl): Improve error location.

View file

@ -3445,7 +3445,9 @@ get_tls_wrapper_fn (tree var)
tree type = non_reference (TREE_TYPE (var));
type = build_reference_type (type);
tree fntype = build_function_type (type, void_list_node);
fn = build_lang_decl (FUNCTION_DECL, sname, fntype);
fn = build_lang_decl_loc (DECL_SOURCE_LOCATION (var),
FUNCTION_DECL, sname, fntype);
SET_DECL_LANGUAGE (fn, lang_c);
TREE_PUBLIC (fn) = TREE_PUBLIC (var);
DECL_ARTIFICIAL (fn) = true;

View file

@ -1,3 +1,8 @@
2019-01-14 Martin Liska <mliska@suse.cz>
PR gcov-profile/88263
* g++.dg/gcov/pr88263-2.C: New test.
2019-01-14 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/88796

View file

@ -0,0 +1,25 @@
// PR gcov-profile/88263
// { dg-options "-fprofile-arcs -ftest-coverage -std=c++11" }
// { dg-do run { target native } }
#include <sstream>
namespace logging {
class Logstream {
~Logstream();
static thread_local std::ostringstream os_;
};
}
namespace logging {
thread_local std::ostringstream Logstream::os_;
Logstream::~Logstream() {
os_.clear();
}
}
int main()
{
return 0;
}
// { dg-final { run-gcov pr88263-2.C } }