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
This commit is contained in:
Mark Mitchell 2001-01-08 01:58:54 +00:00 committed by Mark Mitchell
parent b1095f9cec
commit 0c58da3ed0
3 changed files with 13 additions and 7 deletions

View File

@ -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'.

View File

@ -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;

View File

@ -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
};