From 0c58da3ed06415bce7a2cc636b9c8343237c8736 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Mon, 8 Jan 2001 01:58:54 +0000 Subject: [PATCH] decl2.c (grokfield): Don't accept `asm' specifiers for non-static data members. * decl2.c (grokfield): Don't accept `asm' specifiers for non-static data members. From-SVN: r38792 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl2.c | 9 ++------- gcc/testsuite/g++.old-deja/g++.other/asm1.C | 6 ++++++ 3 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 gcc/testsuite/g++.old-deja/g++.other/asm1.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 0f4277fad31..0f4e41c18a5 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-01-07 Mark Mitchell + + * decl2.c (grokfield): Don't accept `asm' specifiers for + non-static data members. + 2001-01-07 Kaveh R. Ghazi * expr.c (cplus_expand_expr): Don't reset `target'. diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index bac8a6d4f24..a8269c28f0f 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -1794,15 +1794,10 @@ grokfield (declarator, declspecs, init, asmspec_tree, attrlist) if (TREE_CODE (value) == FIELD_DECL) { if (asmspec) - { - /* This must override the asm specifier which was placed - by grokclassfn. Lay this out fresh. */ - DECL_RTL (value) = NULL_RTX; - DECL_ASSEMBLER_NAME (value) = get_identifier (asmspec); - } + cp_error ("`asm' specifiers are not permitted on non-static data members"); if (DECL_INITIAL (value) == error_mark_node) init = error_mark_node; - cp_finish_decl (value, init, asmspec_tree, flags); + cp_finish_decl (value, init, NULL_TREE, flags); DECL_INITIAL (value) = init; DECL_IN_AGGR_P (value) = 1; return value; diff --git a/gcc/testsuite/g++.old-deja/g++.other/asm1.C b/gcc/testsuite/g++.old-deja/g++.other/asm1.C new file mode 100644 index 00000000000..b7065d759f2 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/asm1.C @@ -0,0 +1,6 @@ +// Build don't link: +// Origin: Mark Mitchell + +struct S { + int i asm ("abc"); // ERROR - `asm' specifier not permitted +}; -- 2.30.2