From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) by sourceware.org (Postfix) with ESMTPS id 210303858C52 for ; Sat, 9 Jul 2022 12:24:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 210303858C52 Received: by mail-pg1-x529.google.com with SMTP id r22so1069025pgr.2 for ; Sat, 09 Jul 2022 05:24:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition; bh=vF8WTM6oEBwyynE2sbe4M25Q3UzHKXceg56mAgufSic=; b=Ok992P3Y0ClDsLA/75859v9BbtYE4sch+MY+SsI/rAXRzk1m2gk7Yz2MDZp/sCgEWy pKOqVskoqDQmDvLW9HLSNw3JliEDwfqoq97eVgEEy7gWTc+n1SEJn/iPS9KJgPh0JPEI LbPUkWY2pGl1Lh8n9GtqEM4pf+r4ZqKFRs5kUFbt1X4kH1/A2rscNNOJjFinueL4a73K VRWNo3AGVJR4oaODG2U6AGWro0OfZJGUcBoyO4ZZmeEUwjs9GqFT5c5aO23C/3A9ZNlO 9XzGw4sD3D+vtNB+gScI0qHBbip4RvyrF+67O2Y/3q+49J+JUj1gOcBSbehnpusisUXT rVCg== X-Gm-Message-State: AJIora+/CDg9r8NMKU/3ldtsCwbQGMZyNkSKy/p1BA8JIqWVmcxj/69c iIqxmmvQqUU4XNfQlxMWg6U+uxDWpQw= X-Google-Smtp-Source: AGRyM1sGucsKCmoTftlO8VvO/2eJQFbghT1BH4zXtalvGdpG4HsAUg3Rs++jAyv5X9u2N7ksmTj0Bg== X-Received: by 2002:a63:f741:0:b0:412:86fd:48d with SMTP id f1-20020a63f741000000b0041286fd048dmr7675852pgk.154.1657369454968; Sat, 09 Jul 2022 05:24:14 -0700 (PDT) Received: from squeak.grove.modra.org ([2406:3400:51d:8cc0:4b98:7b4b:d3e3:2ead]) by smtp.gmail.com with ESMTPSA id w125-20020a628283000000b00528676a46cbsm1343086pfd.194.2022.07.09.05.24.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Jul 2022 05:24:14 -0700 (PDT) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 209951140777; Sat, 9 Jul 2022 21:54:12 +0930 (ACST) Date: Sat, 9 Jul 2022 21:54:12 +0930 From: Alan Modra To: binutils@sourceware.org Subject: gas: arm -mwarn-syms duplicates Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-3035.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Jul 2022 12:24:17 -0000 arm gas is only supposed to warn once per symbol for -mwarn-syms, but doesn't because the str_hash_find added with commit 629310abec88 always returns NULL. That's so because the str_hash_insert inserts a NULL value for the key,value pair. Let str_hash_insert do the job instead. * config/tc-arm.c (arm_tc_equal_in_insn): Correct already_warned logic. * testsuite/gas/arm/pr18347.s: Modify to generate duplicate warning without this patch. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 2e6d175482e..68fd6896607 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -28120,11 +28120,8 @@ arm_tc_equal_in_insn (int c ATTRIBUTE_UNUSED, char * name) already_warned = str_htab_create (); /* Only warn about the symbol once. To keep the code simple we let str_hash_insert do the lookup for us. */ - if (str_hash_find (already_warned, nbuf) == NULL) - { - as_warn (_("[-mwarn-syms]: Assignment makes a symbol match an ARM instruction: %s"), name); - str_hash_insert (already_warned, nbuf, NULL, 0); - } + if (str_hash_insert (already_warned, nbuf, NULL, 0) == NULL) + as_warn (_("[-mwarn-syms]: Assignment makes a symbol match an ARM instruction: %s"), name); } else free (nbuf); diff --git a/gas/testsuite/gas/arm/pr18347.s b/gas/testsuite/gas/arm/pr18347.s index 591d69baa83..64a16cb7678 100644 --- a/gas/testsuite/gas/arm/pr18347.s +++ b/gas/testsuite/gas/arm/pr18347.s @@ -1,5 +1,6 @@ MOV r1, r0 LDR =garbage // no destination register + LDR =garbage // and it should only warn once MOV r2, r3 // The warning should only be triggered by a "foo = bar" -- Alan Modra Australia Development Lab, IBM