From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 37517 invoked by alias); 16 Jan 2019 09:26:36 -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 37498 invoked by uid 89); 16 Jan 2019 09:26:35 -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=*walk_subtrees, *visited, TYPE_MODE_RAW, 51086 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; Wed, 16 Jan 2019 09:26:34 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id EC340ACE6; Wed, 16 Jan 2019 09:26:31 +0000 (UTC) Subject: Re: [PATCH] Reset proper type on vector types (PR middle-end/88587). From: =?UTF-8?Q?Martin_Li=c5=a1ka?= To: gcc-patches@gcc.gnu.org Cc: Richard Biener , Jan Hubicka References: <0d2f9afa-b0fb-b81b-aba4-1f7f1faa5f35@suse.cz> Message-ID: <65b91fc9-fcf5-8b73-94dc-2a16317fc59c@suse.cz> Date: Wed, 16 Jan 2019 09:26: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: <0d2f9afa-b0fb-b81b-aba4-1f7f1faa5f35@suse.cz> Content-Type: multipart/mixed; boundary="------------E8AFBB9062176786ADB0C3E4" X-IsSubscribed: yes X-SW-Source: 2019-01/txt/msg00892.txt.bz2 This is a multi-part message in MIME format. --------------E8AFBB9062176786ADB0C3E4 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-length: 581 And there's patch with Richi's validation check that he provided. It fails on following 2 tests in test-suite: $ ./xgcc -B. /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/pr68674.c DECL_MODE BLK vs TYPE_MODE V8SI [V8SI]: a ... $ ./xgcc -B. /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/pr80583.c -c DECL_MODE BLK vs TYPE_MODE V8SI [V8SI]: a ... In both cases we access a global variable from a function with a different target attributes. I guess Honza has seen that in inliner. What to do with these, can it be potentially dangerous? Thanks, Martin --------------E8AFBB9062176786ADB0C3E4 Content-Type: text/x-patch; name="0001-Sanitize-about-VECTOR_TYPEs.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0001-Sanitize-about-VECTOR_TYPEs.patch" Content-length: 1050 >From bf22210f96a2ead9d50e351102f095aadf9d879f Mon Sep 17 00:00:00 2001 From: marxin Date: Wed, 16 Jan 2019 09:05:21 +0100 Subject: [PATCH] Sanitize about VECTOR_TYPEs. --- gcc/tree-cfg.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 6041f4208b0..fc1dd36fbb7 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -5108,6 +5108,17 @@ verify_node_sharing_1 (tree *tp, int *walk_subtrees, void *data) { hash_set *visited = (hash_set *) data; + if (DECL_P (*tp) + && VECTOR_TYPE_P (TREE_TYPE (*tp)) + && DECL_MODE (*tp) != TYPE_MODE (TREE_TYPE (*tp))) + { + fprintf (stderr, "DECL_MODE %s vs TYPE_MODE %s [%s]: ", + mode_name[DECL_MODE (*tp)], + mode_name[TYPE_MODE (TREE_TYPE (*tp))], + mode_name[TYPE_MODE_RAW (TREE_TYPE (*tp))]); + print_generic_expr (stderr, *tp); + fprintf (stderr, "\n"); + } if (tree_node_can_be_shared (*tp)) { *walk_subtrees = false; -- 2.20.1 --------------E8AFBB9062176786ADB0C3E4--