diff options
Diffstat (limited to 'source/d/gcc/patches/revert-asm-inline/7-8-c-asm-Do-not-handle-any-asm-qualifiers-in-top-level-asm.patch')
-rw-r--r-- | source/d/gcc/patches/revert-asm-inline/7-8-c-asm-Do-not-handle-any-asm-qualifiers-in-top-level-asm.patch | 103 |
1 files changed, 0 insertions, 103 deletions
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 deleted file mode 100644 index e124f7c2..00000000 --- a/source/d/gcc/patches/revert-asm-inline/7-8-c-asm-Do-not-handle-any-asm-qualifiers-in-top-level-asm.patch +++ /dev/null @@ -1,103 +0,0 @@ -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 <segher@kernel.crashing.org> -X-Patchwork-Id: 13824 -Message-Id: <7d103b408f9dda95b9d9f5182281ae6bb3947716.1545922222.git.segher@kernel.crashing.org> -To: gcc-patches@gcc.gnu.org -Cc: Segher Boessenkool <segher@kernel.crashing.org> -Date: Thu, 27 Dec 2018 14:59:12 +0000 -From: Segher Boessenkool <segher@kernel.crashing.org> -List-Id: <gcc-patches.gcc.gnu.org> - -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 <segher@kernel.crashing.org> - -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'} } */ |