diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e9e1852cc59..bfc80885f68 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2000-03-14 Greg McGary + + * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED. + * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED. + * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__, + __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__, + __unbounded, __unbounded__): New keywords. + * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens. + 2000-03-14 Bernd Schmidt * cselib.h: New file. diff --git a/gcc/c-lex.c b/gcc/c-lex.c index 6597ffc2895..2f8a8403d69 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -305,6 +305,8 @@ init_lex () ridpointers[(int) RID_CONST] = get_identifier ("const"); ridpointers[(int) RID_RESTRICT] = get_identifier ("restrict"); ridpointers[(int) RID_VOLATILE] = get_identifier ("volatile"); + ridpointers[(int) RID_BOUNDED] = get_identifier ("__bounded"); + ridpointers[(int) RID_UNBOUNDED] = get_identifier ("__unbounded"); ridpointers[(int) RID_AUTO] = get_identifier ("auto"); ridpointers[(int) RID_STATIC] = get_identifier ("static"); ridpointers[(int) RID_EXTERN] = get_identifier ("extern"); diff --git a/gcc/c-lex.h b/gcc/c-lex.h index 811ca9b9bb8..c1e25cb4a52 100644 --- a/gcc/c-lex.h +++ b/gcc/c-lex.h @@ -42,6 +42,8 @@ enum rid RID_CONST, RID_RESTRICT, RID_VOLATILE, + RID_BOUNDED, + RID_UNBOUNDED, RID_INLINE, RID_NOALIAS, RID_ITERATOR, diff --git a/gcc/c-parse.gperf b/gcc/c-parse.gperf index 8f272c457dd..db8dc1ea287 100644 --- a/gcc/c-parse.gperf +++ b/gcc/c-parse.gperf @@ -29,6 +29,8 @@ __asm, ASM_KEYWORD, NORID __asm__, ASM_KEYWORD, NORID __attribute, ATTRIBUTE, NORID __attribute__, ATTRIBUTE, NORID +__bounded, TYPE_QUAL, RID_BOUNDED +__bounded__, TYPE_QUAL, RID_BOUNDED __builtin_va_arg, VA_ARG, NORID __complex, TYPESPEC, RID_COMPLEX __complex__, TYPESPEC, RID_COMPLEX @@ -42,6 +44,12 @@ __inline__, SCSPEC, RID_INLINE __iterator, SCSPEC, RID_ITERATOR __iterator__, SCSPEC, RID_ITERATOR __label__, LABEL, NORID +__ptrbase, PTR_BASE, NORID +__ptrbase__, PTR_BASE, NORID +__ptrextent, PTR_EXTENT, NORID +__ptrextent__, PTR_EXTENT, NORID +__ptrvalue, PTR_VALUE, NORID +__ptrvalue__, PTR_VALUE, NORID __real, REALPART, NORID __real__, REALPART, NORID __restrict, TYPE_QUAL, RID_RESTRICT @@ -50,6 +58,8 @@ __signed, TYPESPEC, RID_SIGNED __signed__, TYPESPEC, RID_SIGNED __typeof, TYPEOF, NORID __typeof__, TYPEOF, NORID +__unbounded, TYPE_QUAL, RID_UNBOUNDED +__unbounded__, TYPE_QUAL, RID_UNBOUNDED __volatile, TYPE_QUAL, RID_VOLATILE __volatile__, TYPE_QUAL, RID_VOLATILE asm, ASM_KEYWORD, NORID diff --git a/gcc/c-parse.in b/gcc/c-parse.in index 6b59e3779e6..dc6f3402049 100644 --- a/gcc/c-parse.in +++ b/gcc/c-parse.in @@ -115,6 +115,7 @@ end ifc %token BREAK CONTINUE RETURN GOTO ASM_KEYWORD TYPEOF ALIGNOF %token ATTRIBUTE EXTENSION LABEL %token REALPART IMAGPART VA_ARG +%token PTR_VALUE PTR_BASE PTR_EXTENT /* Used in c-lex.c for parsing pragmas. */ %token END_OF_LINE