From 490bd1ff02b9d0e37a0aec334c1be80d54ed3ab6 Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Tue, 5 Mar 2019 00:17:16 +0000 Subject: Tue Mar 5 00:17:16 UTC 2019 d/gcc-8.3.0-x86_64-2.txz: Rebuilt. Reverted backported asm inline patches that broke "asm volatile". Thanks to nobodino. d/gcc-brig-8.3.0-x86_64-2.txz: Rebuilt. d/gcc-g++-8.3.0-x86_64-2.txz: Rebuilt. d/gcc-gfortran-8.3.0-x86_64-2.txz: Rebuilt. d/gcc-gnat-8.3.0-x86_64-2.txz: Rebuilt. d/gcc-go-8.3.0-x86_64-2.txz: Rebuilt. d/gcc-objc-8.3.0-x86_64-2.txz: Rebuilt. l/at-spi2-atk-2.30.1-x86_64-1.txz: Upgraded. l/at-spi2-core-2.30.1-x86_64-1.txz: Upgraded. l/gc-8.0.4-x86_64-1.txz: Upgraded. l/glib2-2.60.0-x86_64-1.txz: Upgraded. l/imagemagick-6.9.10_31-x86_64-1.txz: Upgraded. n/postfix-3.4.0-x86_64-2.txz: Rebuilt. Prevent the install script from making noise. x/xinit-1.4.1-x86_64-1.txz: Upgraded. x/xlogo-1.0.5-x86_64-1.txz: Upgraded. x/xmore-1.0.3-x86_64-1.txz: Upgraded. extra/fltk/fltk-1.3.5-x86_64-1.txz: Upgraded. --- ...andle-any-asm-qualifiers-in-top-level-asm.patch | 103 +++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 source/d/gcc/patches/revert-asm-inline/7-8-c-asm-Do-not-handle-any-asm-qualifiers-in-top-level-asm.patch (limited to 'source/d/gcc/patches/revert-asm-inline/7-8-c-asm-Do-not-handle-any-asm-qualifiers-in-top-level-asm.patch') diff --git a/source/d/gcc/patches/revert-asm-inline/7-8-c-asm-Do-not-handle-any-asm-qualifiers-in-top-level-asm.patch b/source/d/gcc/patches/revert-asm-inline/7-8-c-asm-Do-not-handle-any-asm-qualifiers-in-top-level-asm.patch new file mode 100644 index 000000000..e124f7c2b --- /dev/null +++ b/source/d/gcc/patches/revert-asm-inline/7-8-c-asm-Do-not-handle-any-asm-qualifiers-in-top-level-asm.patch @@ -0,0 +1,103 @@ +From patchwork Thu Dec 27 14:59:12 2018 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [7/8] c++, asm: Do not handle any asm-qualifiers in top-level asm +X-Patchwork-Submitter: Segher Boessenkool +X-Patchwork-Id: 13824 +Message-Id: <7d103b408f9dda95b9d9f5182281ae6bb3947716.1545922222.git.segher@kernel.crashing.org> +To: gcc-patches@gcc.gnu.org +Cc: Segher Boessenkool +Date: Thu, 27 Dec 2018 14:59:12 +0000 +From: Segher Boessenkool +List-Id: + +Previously, "volatile" was allowed. Changing this simplifies the code, +makes things more regular, and makes the C and C++ frontends handle +this the same way. + +2018-12-10 Segher Boessenkool + +cp/ + * parser.c (cp_parser_asm_definition): Do not allow any asm qualifiers + on top-level asm. + +testsuite/ + * g++.dg/asm-qual-3.C: New testcase. + * gcc.dg/asm-qual-3.c: New testcase. +--- + gcc/cp/parser.c | 7 ++----- + gcc/testsuite/g++.dg/asm-qual-3.C | 12 ++++++++++++ + gcc/testsuite/gcc.dg/asm-qual-3.c | 9 +++++++++ + 3 files changed, 23 insertions(+), 5 deletions(-) + create mode 100644 gcc/testsuite/g++.dg/asm-qual-3.C + create mode 100644 gcc/testsuite/gcc.dg/asm-qual-3.c + +-- +1.8.3.1 + +diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c +index 36d82b8..afc7b96 100644 +--- a/gcc/cp/parser.c ++++ b/gcc/cp/parser.c +@@ -19125,7 +19125,8 @@ cp_parser_asm_definition (cp_parser* parser) + location_t volatile_loc = UNKNOWN_LOCATION; + location_t inline_loc = UNKNOWN_LOCATION; + location_t goto_loc = UNKNOWN_LOCATION; +- if (cp_parser_allow_gnu_extensions_p (parser)) ++ ++ if (cp_parser_allow_gnu_extensions_p (parser) && parser->in_function_body) + for (;;) + { + cp_token *token = cp_lexer_peek_token (parser->lexer); +@@ -19144,8 +19145,6 @@ cp_parser_asm_definition (cp_parser* parser) + continue; + + case RID_INLINE: +- if (!parser->in_function_body) +- break; + if (inline_loc) + { + error_at (loc, "duplicate asm qualifier %qT", token->u.value); +@@ -19157,8 +19156,6 @@ cp_parser_asm_definition (cp_parser* parser) + continue; + + case RID_GOTO: +- if (!parser->in_function_body) +- break; + if (goto_loc) + { + error_at (loc, "duplicate asm qualifier %qT", token->u.value); +diff --git a/gcc/testsuite/g++.dg/asm-qual-3.C b/gcc/testsuite/g++.dg/asm-qual-3.C +new file mode 100644 +index 0000000..95c9b57 +--- /dev/null ++++ b/gcc/testsuite/g++.dg/asm-qual-3.C +@@ -0,0 +1,12 @@ ++// Test that asm-qualifiers are not allowed on toplevel asm. ++// { dg-do compile } ++// { dg-options "-std=gnu++98" } ++ ++asm const (""); // { dg-error {expected '\(' before 'const'} } ++asm volatile (""); // { dg-error {expected '\(' before 'volatile'} } ++asm restrict (""); // { dg-error {expected '\(' before 'restrict'} } ++asm inline (""); // { dg-error {expected '\(' before 'inline'} } ++asm goto (""); // { dg-error {expected '\(' before 'goto'} } ++ ++// There are many other things wrong with this code, so: ++// { dg-excess-errors "" } +diff --git a/gcc/testsuite/gcc.dg/asm-qual-3.c b/gcc/testsuite/gcc.dg/asm-qual-3.c +new file mode 100644 +index 0000000..f85d8bf +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/asm-qual-3.c +@@ -0,0 +1,9 @@ ++/* Test that asm-qualifiers are not allowed on toplevel asm. */ ++/* { dg-do compile } */ ++/* { dg-options "-std=gnu99" } */ ++ ++asm const (""); /* { dg-error {expected '\(' before 'const'} } */ ++asm volatile (""); /* { dg-error {expected '\(' before 'volatile'} } */ ++asm restrict (""); /* { dg-error {expected '\(' before 'restrict'} } */ ++asm inline (""); /* { dg-error {expected '\(' before 'inline'} } */ ++asm goto (""); /* { dg-error {expected '\(' before 'goto'} } */ -- cgit v1.2.3