c-parse.in: Revert last change.
* c-parse.in: Revert last change. (init_reswords): Do not enter disabled keywords into the ridpointers table, modulo objc weirdness. (_yylex): Return the canonical spelling for a keyword. From-SVN: r36303
This commit is contained in:
parent
75d8aea7ff
commit
aac02f4e6b
2 changed files with 27 additions and 7 deletions
|
@ -1,3 +1,10 @@
|
|||
2000-09-10 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* c-parse.in: Revert last change.
|
||||
(init_reswords): Do not enter disabled keywords into the ridpointers
|
||||
table, modulo objc weirdness.
|
||||
(_yylex): Return the canonical spelling for a keyword.
|
||||
|
||||
2000-09-10 Philip Blundell <philb@gnu.org>
|
||||
|
||||
* config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
|
||||
|
|
|
@ -1901,14 +1901,14 @@ stmt:
|
|||
{ stmt_count++;
|
||||
emit_line_note ($<filename>-1, $<lineno>0);
|
||||
c_expand_asm_operands ($4, $6, NULL_TREE, NULL_TREE,
|
||||
$2 && C_RID_CODE ($2) == RID_VOLATILE,
|
||||
$2 == ridpointers[(int)RID_VOLATILE],
|
||||
input_filename, lineno); }
|
||||
/* This is the case with input operands as well. */
|
||||
| ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ':' asm_operands ')' ';'
|
||||
{ stmt_count++;
|
||||
emit_line_note ($<filename>-1, $<lineno>0);
|
||||
c_expand_asm_operands ($4, $6, $8, NULL_TREE,
|
||||
$2 && C_RID_CODE ($2) == RID_VOLATILE,
|
||||
$2 == ridpointers[(int)RID_VOLATILE],
|
||||
input_filename, lineno); }
|
||||
/* This is the case with clobbered registers as well. */
|
||||
| ASM_KEYWORD maybe_type_qual '(' expr ':' asm_operands ':'
|
||||
|
@ -1916,7 +1916,7 @@ stmt:
|
|||
{ stmt_count++;
|
||||
emit_line_note ($<filename>-1, $<lineno>0);
|
||||
c_expand_asm_operands ($4, $6, $8, $10,
|
||||
$2 && C_RID_CODE ($2) == RID_VOLATILE,
|
||||
$2 == ridpointers[(int)RID_VOLATILE],
|
||||
input_filename, lineno); }
|
||||
| GOTO identifier ';'
|
||||
{ tree decl;
|
||||
|
@ -3061,8 +3061,7 @@ init_reswords ()
|
|||
{
|
||||
unsigned int i;
|
||||
tree id;
|
||||
int mask = (D_YES
|
||||
| (doing_objc_thang ? 0 : D_OBJC)
|
||||
int mask = ((doing_objc_thang ? 0 : D_OBJC)
|
||||
| (flag_isoc99 ? 0 : D_C89)
|
||||
| (flag_traditional ? D_TRAD : 0)
|
||||
| (flag_no_asm ? (flag_isoc99 ? D_EXT : D_EXT|D_EXT89) : 0));
|
||||
|
@ -3073,10 +3072,19 @@ init_reswords ()
|
|||
ridpointers = (tree *) xcalloc ((int) RID_MAX, sizeof (tree));
|
||||
for (i = 0; i < N_reswords; i++)
|
||||
{
|
||||
/* If a keyword is disabled, do not enter it into the table
|
||||
and so create a canonical spelling that isn't a keyword. */
|
||||
if (reswords[i].disable & mask)
|
||||
continue;
|
||||
|
||||
id = get_identifier (reswords[i].word);
|
||||
C_RID_CODE (id) = reswords[i].rid;
|
||||
ridpointers [(int) reswords[i].rid] = id;
|
||||
if (! (reswords[i].disable & mask))
|
||||
|
||||
/* Objective C does tricky things with enabling and disabling
|
||||
keywords. So these we must not elide in the test above, but
|
||||
wait and not mark them reserved now. */
|
||||
if (! (reswords[i].disable & D_YES))
|
||||
C_IS_RESERVED_WORD (id) = 1;
|
||||
}
|
||||
}
|
||||
|
@ -3219,7 +3227,12 @@ _yylex ()
|
|||
|
||||
case CPP_NAME:
|
||||
if (C_IS_RESERVED_WORD (yylval.ttype))
|
||||
return rid_to_yy[C_RID_CODE (yylval.ttype)];
|
||||
{
|
||||
enum rid rid_code = C_RID_CODE (yylval.ttype);
|
||||
/* Return the canonical spelling for this keyword. */
|
||||
yylval.ttype = ridpointers[(int) rid_code];
|
||||
return rid_to_yy[(int) rid_code];
|
||||
}
|
||||
|
||||
if (IDENTIFIER_POINTER (yylval.ttype)[0] == '@')
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue