From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c09::243; helo=mail-wm0-x243.google.com; envelope-from=sigmaepsilon92@gmail.com; receiver=edk2-devel@lists.01.org Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 108B822280C25 for ; Wed, 27 Dec 2017 11:23:59 -0800 (PST) Received: by mail-wm0-x243.google.com with SMTP id 9so40828010wme.4 for ; Wed, 27 Dec 2017 11:28:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=xs83yHE00j0rMJpqM7QQY1xoigGHLJd5JwYZJphQXJo=; b=reUVVuKOyHxOwj5rShaTBJ8RdkKabY7RXqEgsNMD8d1WtlhvY7+Z4A6I6JjTK2wbuM uuctnyg4/5PXmxWvHvWoJ1HGNwqWKOYj4i4neYOs8eltMZj46rGEPFA/LC6+nIa99vcT 7J0vgP9xfr1rSSfD7xrrdNmx01OhETNUJnXu8C4y1b4MGl1C7i8sr0H2HfxxDPIP8tkN qQrKo93IPYkGNuzYF0HqAruMb7FPxRN4lR8Qn1RZijlAjVvByJ+BfnSHN7ooSRaRnULd +iIQiRUU9AarVmqW7TmJKus6zQfuYtTdvhntWT+DY9QkFgjFMxXNA8oLGFDDrxZ3MfpN Gr8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=xs83yHE00j0rMJpqM7QQY1xoigGHLJd5JwYZJphQXJo=; b=ncf9pOJoxgB8saVghLhWsUHL31dihjPcUZ7oOK86jYB1aEATyIGQ7I2BeuMM/pLx+p 5FoQZdNRplViUXDGC3yXCIu7NWbnCVm9nhj1IHvXRKVv8xa1Ywi/nBlyQkMYRqUbRSHL Fj7DmfQgc9RPch+3P49+LsYX7iooW287qn0kbB1CK/m5W/FhB3Kcq1otgdol49IGteHQ lpoh+6McfZ+Ar/xC9TIvrYNxjAjewVH4m0UE3TTZFBwxXPxW56JdEDP648HmucID/Rwq q+TCQwUasdS2TZVzMMPDv4yW35cCQqzHhIMKUHuZ6W048iWasMAyjlPqBjvXqTs9YMTb Xyww== X-Gm-Message-State: AKGB3mL/DsoJF+wBCnejBnGQrPgJakXOD4q5RpSBiCty1JwPtY3UzR3w QhI8zeqAuWIVcYAYLqKDD1FsFIi6 X-Google-Smtp-Source: ACJfBouWjTeM66GuOeqpdz88SALK2kKJl+7dWJVKVmMyYbFGz4yjIE3CnbVAiC3aw/Um8EbP0dSrXg== X-Received: by 10.28.158.212 with SMTP id h203mr2898526wme.157.1514402934165; Wed, 27 Dec 2017 11:28:54 -0800 (PST) Received: from m1cha-NB.fritz.box (p57B5F2FC.dip0.t-ipconnect.de. [87.181.242.252]) by smtp.gmail.com with ESMTPSA id b48sm79475226wrb.1.2017.12.27.11.28.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Dec 2017 11:28:52 -0800 (PST) From: M1cha To: edk2-devel@lists.01.org Cc: Ard Biesheuvel , Michael D Kinney , Liming Gao Date: Wed, 27 Dec 2017 20:28:49 +0100 Message-Id: <20171227192850.26774-1-sigmaepsilon92@gmail.com> X-Mailer: git-send-email 2.15.1 Subject: [PATCH v3 1/3] MdePkg: add RETURNS_TWICE attribute X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Dec 2017 19:24:00 -0000 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Zimmermann --- V3: add code comments MdePkg/Include/Base.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h index 22ab5d3715fb..8c7345609ed5 100644 --- a/MdePkg/Include/Base.h +++ b/MdePkg/Include/Base.h @@ -218,6 +218,26 @@ VERIFY_SIZE_OF (__VERIFY_UINT32_ENUM_SIZE, 4); #endif #endif +/// +/// Tell the code optimizer that the function will return twice. +/// This prevents wrong optimizations which can cause bugs. +/// +#ifndef RETURNS_TWICE + #if defined (__GNUC__) || defined (__clang__) + /// + /// Tell the code optimizer that the function will return twice. + /// This prevents wrong optimizations which can cause bugs. + /// + #define RETURNS_TWICE __attribute__((returns_twice)) + #else + /// + /// Tell the code optimizer that the function will return twice. + /// This prevents wrong optimizations which can cause bugs. + /// + #define RETURNS_TWICE + #endif +#endif + // // For symbol name in assembly code, an extra "_" is sometimes necessary // -- 2.15.1