[{"id":1761646,"web_url":"http://patchwork.ozlabs.org/comment/1761646/","msgid":"<76F82E82-2552-4723-BD5F-B4ED1EF1B686@suse.de>","list_archive_url":null,"date":"2017-09-01T12:29:32","subject":"Re: [PATCH] Fix asan create_odr_indicator (PR sanitizer/81923)","submitter":{"id":4338,"url":"http://patchwork.ozlabs.org/api/people/4338/","name":"Richard Biener","email":"rguenther@suse.de"},"content":"On September 1, 2017 1:48:04 PM GMT+02:00, Jakub Jelinek <jakub@redhat.com> wrote:\n>Hi!\n>\n>glibc fails to build with -fsanitize=address, because\n>DECL_ASSEMBLER_NAME\n>on some variables starts with the * character (e.g. for vars with __asm\n>specified names).  We need to strip name encoding from those before\n>appending after __odr_asan. Fixed thusly, bootstrapped/regtested on\n>x86_64-linux and i686-linux, ok for trunk?\n\nOK. \n\nRichard. \n\n>2017-09-01  Jakub Jelinek  <jakub@redhat.com>\n>\n>\tPR sanitizer/81923\n>\t* asan.c (create_odr_indicator): Strip name encoding from assembler\n>\tname before appending it after __odr_asan_.\n>\n>\t* gcc.dg/asan/pr81923.c: New test.\n>\n>--- gcc/asan.c.jj\t2017-08-10 02:31:21.000000000 +0200\n>+++ gcc/asan.c\t2017-08-29 17:25:58.337595628 +0200\n>@@ -2529,9 +2529,12 @@ create_odr_indicator (tree decl, tree ty\n>/* DECL_NAME theoretically might be NULL.  Bail out with 0 in this\n>case.  */\n>   if (decl_name == NULL_TREE)\n>     return build_int_cst (uptr, 0);\n>-  size_t len = strlen (IDENTIFIER_POINTER (decl_name)) + sizeof\n>(\"__odr_asan_\");\n>+  const char *dname = IDENTIFIER_POINTER (decl_name);\n>+  if (HAS_DECL_ASSEMBLER_NAME_P (decl))\n>+    dname = targetm.strip_name_encoding (dname);\n>+  size_t len = strlen (dname) + sizeof (\"__odr_asan_\");\n>   name = XALLOCAVEC (char, len);\n>-  snprintf (name, len, \"__odr_asan_%s\", IDENTIFIER_POINTER\n>(decl_name));\n>+  snprintf (name, len, \"__odr_asan_%s\", dname);\n> #ifndef NO_DOT_IN_LABEL\n>   name[sizeof (\"__odr_asan\") - 1] = '.';\n> #elif !defined(NO_DOLLAR_IN_LABEL)\n>--- gcc/testsuite/gcc.dg/asan/pr81923.c.jj\t2017-08-29\n>18:08:59.183881570 +0200\n>+++ gcc/testsuite/gcc.dg/asan/pr81923.c\t2017-08-29 18:09:27.643550083\n>+0200\n>@@ -0,0 +1,10 @@\n>+/* PR sanitizer/81923 */\n>+/* { dg-do link } */\n>+\n>+int foobar __asm (__USER_LABEL_PREFIX__ \"barbaz\") = 34;\n>+\n>+int\n>+main ()\n>+{\n>+  return 0;\n>+}\n>\n>\tJakub","headers":{"Return-Path":"<gcc-patches-return-461276-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-461276-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"X1fVz21s\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xkJTj5wscz9s7c\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri,  1 Sep 2017 22:29:45 +1000 (AEST)","(qmail 113488 invoked by alias); 1 Sep 2017 12:29:38 -0000","(qmail 113479 invoked by uid 89); 1 Sep 2017 12:29:37 -0000","from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by\n\tsourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tFri, 01 Sep 2017 12:29:36 +0000","from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254])\tby\n\tmx1.suse.de (Postfix) with ESMTP id 6A0FBACB8;\n\tFri,  1 Sep 2017 12:29:34 +0000 (UTC)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:date\n\t:in-reply-to:references:mime-version:content-type\n\t:content-transfer-encoding:subject:to:cc:from:message-id; q=dns;\n\ts=default; b=oQeXNGAiutrEUEH+BHXyZBCWdmehUj774S2ouuEbvLpwzQyfSO\n\tui3InbZS+b6dLB0AUxLur5l62pCjNaBEYCiOC5G13a/NwXP4euwhHfz8K+APFHfn\n\tK7AQJfvKrP+2DaJzJHIUWa3TA7ZmQeAgbpz/dQydBHF8OT9uDSuLsfmOM=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:date\n\t:in-reply-to:references:mime-version:content-type\n\t:content-transfer-encoding:subject:to:cc:from:message-id; s=\n\tdefault; bh=ncb8JbaHN8e3WwxThPsDZBQxdHE=; b=X1fVz21s7IICpleUV0vh\n\tJoU4xnBw9QAYVH2dK0Rw8vErL71J/jeEAAqthSrv3EWO6qSn7GbBZZ6k+TbEqBq/\n\t00o9BlQzoqw9zwKMfZewYnjfyPXeG75OBThdf3OiczUiFwPdKLWr7PpBQ76YPJ1v\n\tPZP0N5tSzvbRfQ8BpDeBriE=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-11.9 required=5.0 tests=BAYES_00, GIT_PATCH_2,\n\tGIT_PATCH_3, RP_MATCHES_RCVD,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=","X-HELO":"mx1.suse.de","Date":"Fri, 01 Sep 2017 14:29:32 +0200","User-Agent":"K-9 Mail for Android","In-Reply-To":"<20170901114804.GI2323@tucnak>","References":"<20170901114804.GI2323@tucnak>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","Subject":"Re: [PATCH] Fix asan create_odr_indicator (PR sanitizer/81923)","To":"Jakub Jelinek <jakub@redhat.com>","CC":"gcc-patches@gcc.gnu.org","From":"Richard Biener <rguenther@suse.de>","Message-ID":"<76F82E82-2552-4723-BD5F-B4ED1EF1B686@suse.de>"}}]