From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 79455 invoked by alias); 14 Jan 2019 15:43:13 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 79426 invoked by uid 89); 14 Jan 2019 15:43:12 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy=gcov X-HELO: mx1.suse.de Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 14 Jan 2019 15:43:11 +0000 Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id E8B76AF1E; Mon, 14 Jan 2019 15:43:08 +0000 (UTC) Subject: [PATCH] Fix location of tls_wrapper_fn (PR gcov-profile/88263). From: =?UTF-8?Q?Martin_Li=c5=a1ka?= To: gcc-patches@gcc.gnu.org Cc: Jason Merrill References: Message-ID: <3a0fba60-3bc1-b220-00df-ceec0eca8a34@suse.cz> Date: Mon, 14 Jan 2019 15:43:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------365914A541580843629472FA" X-IsSubscribed: yes X-SW-Source: 2019-01/txt/msg00784.txt.bz2 This is a multi-part message in MIME format. --------------365914A541580843629472FA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-length: 188 Hi. This is another fix for the PR where I updated location of tls_wrapper. Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Thanks, Martin --------------365914A541580843629472FA Content-Type: text/x-patch; name="0001-Fix-location-of-tls_wrapper_fn-PR-gcov-profile-88263.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-Fix-location-of-tls_wrapper_fn-PR-gcov-profile-88263.pa"; filename*1="tch" Content-length: 2074 >From 07811d1057196abad898c9aeda08cd9113aedf70 Mon Sep 17 00:00:00 2001 From: marxin Date: Mon, 14 Jan 2019 14:57:01 +0100 Subject: [PATCH] Fix location of tls_wrapper_fn (PR gcov-profile/88263). gcc/cp/ChangeLog: 2019-01-14 Martin Liska PR gcov-profile/88263 * decl2.c (get_tls_wrapper_fn): Use DECL_SOURCE_LOCATION as location of the TLS wrapper. gcc/testsuite/ChangeLog: 2019-01-14 Martin Liska PR gcov-profile/88263 * g++.dg/gcov/pr88263-2.C: New test. --- gcc/cp/decl2.c | 4 +++- gcc/testsuite/g++.dg/gcov/pr88263-2.C | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/gcov/pr88263-2.C diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index dbab95fbc96..9085e5cb154 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -3433,7 +3433,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; diff --git a/gcc/testsuite/g++.dg/gcov/pr88263-2.C b/gcc/testsuite/g++.dg/gcov/pr88263-2.C new file mode 100644 index 00000000000..f0cf15f5d0a --- /dev/null +++ b/gcc/testsuite/g++.dg/gcov/pr88263-2.C @@ -0,0 +1,25 @@ +// PR gcov-profile/88263 +// { dg-options "-fprofile-arcs -ftest-coverage -std=c++11" } +// { dg-do run { target native } } + +#include + +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 } } -- 2.20.1 --------------365914A541580843629472FA--