From patchwork Fri Nov 4 13:53:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Marc_Poulhi=C3=A8s?= X-Patchwork-Id: 15531 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp416408wru; Fri, 4 Nov 2022 06:55:16 -0700 (PDT) X-Google-Smtp-Source: AMsMyM67ck6JkLkfU45Ha0z/83cQvb6dMdqkIwEbqQm2/ITB+dQZRm8SpnjxlY84xyqhhS54J78r X-Received: by 2002:a05:6402:22f1:b0:462:f6eb:6c6b with SMTP id dn17-20020a05640222f100b00462f6eb6c6bmr35385356edb.365.1667570115986; Fri, 04 Nov 2022 06:55:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667570115; cv=none; d=google.com; s=arc-20160816; b=ibroLENVYUwWt9M7UZjSx3FKbwXVJ1MqImyZteskyD0FqSSbqoDg3yHv6Eh+9TuAMX TZt32zPZWnskkZAk3GjM01Xae7XiyOBwezGa6yODrMPi9iRfo4feSXNG/Cl4U/E4d0o4 bRt6m/Sh91hKPs/LO4eDEgiXhZK4Z6ffJ/jxl5ldoX4xVjymqhYXHtUNJq5vHgfOe8eM ZPtaPWJVpgH24+N13zvKJ8U3ihuDhiswwGGphWpHp8C1dTaUAJTOUda2dMf7nAaSQQ1k YcrpKiUKSoY6qZfcnIB75oEs75Chsx/QwzPA568duKIjmLkVKI2Pm0tKHfE0Xn7RMzpb p3gQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:reply-to:from:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:message-id:date:subject:to :dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=n6Lj1hLtX2elKAkEbZL7llhwxf002qfPtFG6CHoKyvQ=; b=IEwUgAU1V3EydJtZC8zmzOInsN4gJgH2Ec5gduV8Pya0g5jyhvyPEHpJLnQN8U70Xm I2c+L/j2rstEbQtbJwvPxJ81FdlnW1bGxas7DlpmHL8i8sXt/8r/hKsjY4SxB8IKBgpS FFcdpY+CjAPR2b1CAGi8yVg//aDhna6NuY6xvyPD/RuSJdnSgtNzOr7xdgSmH2t7thNL 9POsW0043IAVCTon5ysfPsH9IniRR9n9QYXz0tJ0jA68qYmItV0m67VfGQ9Nwy/d7ISa RJYNGBPPS1a2vguAW1y3mCpLZrRMFM2KbIyxUx5ph5KROCDkkjWYgSMEN6Yg/CBmSkyK 3Xaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=pcGg2tL6; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id hz5-20020a1709072ce500b00782e1a663dcsi5694547ejc.435.2022.11.04.06.55.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Nov 2022 06:55:15 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=pcGg2tL6; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 182413857415 for ; Fri, 4 Nov 2022 13:54:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 182413857415 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667570084; bh=n6Lj1hLtX2elKAkEbZL7llhwxf002qfPtFG6CHoKyvQ=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=pcGg2tL6dFhVZ3RbwG7aTsJE/e2G9r7qE7TjFCjtJz7U6fKNTb1mKwInBQibXQjAD V8WLsbnUO5QDZRLIeym+6PHdLvk3SoTF7sssKSAPqjCWUOgnJWr+XQkNyf7jt2lQOr cCbqjssfE2Omt/hWtnpMaVHSOQhKHSfSiFhtSoyQ= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by sourceware.org (Postfix) with ESMTPS id 2F0653857C64 for ; Fri, 4 Nov 2022 13:53:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2F0653857C64 Received: by mail-wr1-x434.google.com with SMTP id l14so7182299wrw.2 for ; Fri, 04 Nov 2022 06:53:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=n6Lj1hLtX2elKAkEbZL7llhwxf002qfPtFG6CHoKyvQ=; b=zPehrPKDm8NBvxve4AmKp3Rj46Ed32FiE+Q/g1rgSlhh+cdSInmZ4O6knkMvZowYjb k3WZMjxHIAIEzxOXd96nAH9Q1HEXO4ZW7dwRR7PWHeMQCtqvz5FuutyS2cFw7BF6LQcy 19HufwEe6b7KaHo1FvK6iELiZkRRXHqz6snFQfYM53Sg5loBY5LUPcla9bCo27FM6+eC dq7Vnuph5HFyiqUoaKvH39LWqnuFp6kJJTiGP67UMwy9Q92YWUc4GNZOehni0IBDdJAw 0SqfpUA2r8Sr3jgtvPB+Jl3P7LY/44ONqPCTmiHYw2/oq0Qe/XEppaTZDItNR9oc4RlA SqHg== X-Gm-Message-State: ACrzQf0lW0okssGQB2THh5S32mlz13KkYM3bUKoOhcqWkIeebc6VtyZK mRAFccHLP4fLYHz5dIu3DAxJQMtFi5OdzA== X-Received: by 2002:adf:e3cc:0:b0:235:95b1:2124 with SMTP id k12-20020adfe3cc000000b0023595b12124mr22988779wrm.693.1667570037941; Fri, 04 Nov 2022 06:53:57 -0700 (PDT) Received: from localhost.localdomain (static-176-191-105-132.ftth.abo.bbox.fr. [176.191.105.132]) by smtp.gmail.com with ESMTPSA id j15-20020a05600c1c0f00b003c21ba7d7d6sm3114099wms.44.2022.11.04.06.53.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Nov 2022 06:53:57 -0700 (PDT) To: gcc-patches@gcc.gnu.org Subject: [COMMITTED] ada: Reject expanded global names in lock-free protected objects Date: Fri, 4 Nov 2022 14:53:47 +0100 Message-Id: <20221104135347.85341-1-poulhies@adacore.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: =?utf-8?q?Marc_Poulhi=C3=A8s_via_Gcc-patches?= From: =?utf-8?q?Marc_Poulhi=C3=A8s?= Reply-To: =?utf-8?q?Marc_Poulhi=C3=A8s?= Cc: Piotr Trojanek Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748574001621959350?= X-GMAIL-MSGID: =?utf-8?q?1748574001621959350?= From: Piotr Trojanek Lock-free expansion of protected subprograms is only possible when there are no references to global assignable objects. We only detected such references when they appeared as direct names, but we must similarly detect expanded names. gcc/ada/ * sem_ch9.adb (Satisfies_Lock_Free_Requirements): Detect references via expanded names. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_ch9.adb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/ada/sem_ch9.adb b/gcc/ada/sem_ch9.adb index f2a59017865..5dee216256c 100644 --- a/gcc/ada/sem_ch9.adb +++ b/gcc/ada/sem_ch9.adb @@ -463,7 +463,7 @@ package body Sem_Ch9 is -- References - elsif Kind = N_Identifier + elsif Kind in N_Identifier | N_Expanded_Name and then Present (Entity (N)) then declare @@ -564,7 +564,7 @@ package body Sem_Ch9 is -- reference only one component of the protected type, plus -- the type of the component must support atomic operation. - if Kind = N_Identifier + if Kind in N_Identifier | N_Expanded_Name and then Present (Entity (N)) then declare