From patchwork Thu Mar 24 10:35:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Botcazou X-Patchwork-Id: 1608973 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=CwHAztIK; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KPM8m2wPDz9s1l for ; Thu, 24 Mar 2022 21:36:40 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CEBF53858C2C for ; Thu, 24 Mar 2022 10:36:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CEBF53858C2C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1648118197; bh=0ltAH+Cdn3CAfb8tHFL4VUD7aGNBGDpOPg1g1zlAKfo=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=CwHAztIKKyLMjzDErCWukrivl6nYJp/zY7ZrPyVIXcTlZdZ85toUFxAop0m/q0yuB MN5eOUcuL4bIKvnT2vFDtsTd3RsZMeWZQ4dPoVAXtYHeFobb/mLP0wOIVv3CJ0Adua 8Ww7SkUemyfICdOkz3WhCfXQ+dW0zNJvofP9p8Qk= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by sourceware.org (Postfix) with ESMTPS id 24EE5388A002 for ; Thu, 24 Mar 2022 10:35:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 24EE5388A002 Received: by mail-wr1-x42b.google.com with SMTP id u16so5978099wru.4 for ; Thu, 24 Mar 2022 03:35:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=0ltAH+Cdn3CAfb8tHFL4VUD7aGNBGDpOPg1g1zlAKfo=; b=z8MNTAUOdghCAJauXdN8s9madLoSnOADen1SuqNG5egvIbp3SLk51/AmG1vrVDS5cH bjnKNgaSJWqlWYe7i/rbVohuxJp3CjKoXjJZ7mx+rQ/w1rc6UCpQ0q+EWw55rH7EegwL HGkoNE3++t+pSDGXZDXXLQq6aC7PW1ZFNroVnZSIuRfDePWUQJLNJv18boqwgbjnc7vq pRVEmiys2IIySYS77cCeQSBQn6W3Eb2Qab81HeV9QzmS9quJ9PdDpndIe5IRWoyAqbCP DA6tPb4HZ+HR1N6kOLsn+IQ1dShlU1f8ErDRiIrBwqi9YxrqyDlImeDB3sM/Ie/VkqsY M9dQ== X-Gm-Message-State: AOAM533FpV4Kz8m+AM1hK8cQ7eTenjRgP6eTOeZqVpCZCOVBMooc+oFv /4OpxVIDnE4lykG/rvewW6vLdesJwlQPEA== X-Google-Smtp-Source: ABdhPJyDs1eaAFTWb1wLEbnl4kXh7+A0WdoZXaAv2uQb8QiVRpjZ/ZfJXwwl3tx4QE3zCu3bdS9nqw== X-Received: by 2002:adf:ee87:0:b0:203:de0b:b236 with SMTP id b7-20020adfee87000000b00203de0bb236mr3840695wro.337.1648118125832; Thu, 24 Mar 2022 03:35:25 -0700 (PDT) Received: from fomalhaut.localnet ([2a01:e0a:41b:84f0:cf71:f5e0:b050:bede]) by smtp.gmail.com with ESMTPSA id 7-20020a05600c028700b0038cc9bfe6a4sm1701925wmk.37.2022.03.24.03.35.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Mar 2022 03:35:25 -0700 (PDT) X-Google-Original-From: Eric Botcazou To: gcc-patches@gcc.gnu.org Subject: [Ada] Fix PR ada/104767 Date: Thu, 24 Mar 2022 11:35:24 +0100 Message-ID: <5806380.lOV4Wx5bFT@fomalhaut> MIME-Version: 1.0 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Eric Botcazou via Gcc-patches From: Eric Botcazou Reply-To: Eric Botcazou Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" This is a regression present on mainline, 11 and 10 branches. When the serial port is closed, we need to ensure that the port handle is properly reset for it to be detected as closed. Tested on x86-64/Linux, applied on mainline, 11 and 10 branches. 2022-03-24 Pascal Obry PR ada/104767 * libgnat/g-sercom__mingw.adb (Close): Reset port handle to -1. * libgnat/g-sercom__linux.adb (Close): Likewise. diff --git a/gcc/ada/libgnat/g-sercom__linux.adb b/gcc/ada/libgnat/g-sercom__linux.adb index a2a64b1c17f..73bbb69300e 100644 --- a/gcc/ada/libgnat/g-sercom__linux.adb +++ b/gcc/ada/libgnat/g-sercom__linux.adb @@ -382,6 +382,7 @@ package body GNAT.Serial_Communications is begin if Port.H /= -1 then Res := close (int (Port.H)); + Port.H := -1; end if; end Close; diff --git a/gcc/ada/libgnat/g-sercom__mingw.adb b/gcc/ada/libgnat/g-sercom__mingw.adb index aea78aead8c..d3301bd045b 100644 --- a/gcc/ada/libgnat/g-sercom__mingw.adb +++ b/gcc/ada/libgnat/g-sercom__mingw.adb @@ -70,6 +70,7 @@ package body GNAT.Serial_Communications is begin if Port.H /= -1 then Success := CloseHandle (HANDLE (Port.H)); + Port.H := -1; if Success = Win32.FALSE then Raise_Error ("error closing the port");