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:
parent
b1095f9cec
commit
0c58da3ed0
@ -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'.
|
||||
|
@ -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;
|
||||
|
6
gcc/testsuite/g++.old-deja/g++.other/asm1.C
Normal file
6
gcc/testsuite/g++.old-deja/g++.other/asm1.C
Normal 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
|
||||
};
|
Loading…
Reference in New Issue
Block a user