diff options
author | Mark Mitchell <mark@codesourcery.com> | 2001-01-08 01:58:54 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2001-01-08 01:58:54 +0000 |
commit | 0c58da3ed06415bce7a2cc636b9c8343237c8736 (patch) | |
tree | d36ca4f64fca2eb5b935f93b00bee0d54e6ba253 /gcc | |
parent | b1095f9cec18563c97fb5106b30019cff71a86bd (diff) | |
download | gcc-0c58da3ed06415bce7a2cc636b9c8343237c8736.zip gcc-0c58da3ed06415bce7a2cc636b9c8343237c8736.tar.gz gcc-0c58da3ed06415bce7a2cc636b9c8343237c8736.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/asm1.C | 6 |
3 files changed, 13 insertions, 7 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 0f4277f..0f4e41c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-01-07 Mark Mitchell <mark@codesourcery.com> + + * decl2.c (grokfield): Don't accept `asm' specifiers for + non-static data members. + 2001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * expr.c (cplus_expand_expr): Don't reset `target'. diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index bac8a6d..a8269c2 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 0000000..b7065d7 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/asm1.C @@ -0,0 +1,6 @@ +// Build don't link: +// Origin: Mark Mitchell <mark@codesourcery.com> + +struct S { + int i asm ("abc"); // ERROR - `asm' specifier not permitted +}; |