diff options
author | Joseph Myers <jsm28@cam.ac.uk> | 2001-05-25 12:12:47 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2001-05-25 12:12:47 +0100 |
commit | 0e03329a6f5e6abf7df9adb8331136414e6fb5a6 (patch) | |
tree | 0d9cee59da5c70c8d1b6baefbc0569ba13d97432 /gcc/c-tree.h | |
parent | b60868e00c8cc0fdda3018293c6c1149a62bed52 (diff) | |
download | gcc-0e03329a6f5e6abf7df9adb8331136414e6fb5a6.tar.gz |
c-parse.in (array_declarator): New.
* c-parse.in (array_declarator): New. Handle C99 constructs.
Don't restrict [*] declarators to C only.
(after_type_declarator, parm_declarator_starttypename,
parm_declarator_nostarttypename, notype_declarator,
direct_absdcl1): Use it.
* c-decl.c (build_array_declarator, set_array_declarator_type):
New functions. Warn that [*] isn't properly implemented; pedwarn
for [*] outside C99 mode if pedantic rather than giving a hard
error.
(grokdeclarator): Handle static and type qualifiers in parameter
array declarators.
* c-tree.h (build_array_declarator, set_array_declarator_type):
Declare.
* extend.texi (Attribute Syntax): Document attributes in parameter
array declarators.
testsuite:
* gcc.dg/c90-arraydecl-1.c, gcc.dg/c99-arraydecl-1.c: New tests.
From-SVN: r42574
Diffstat (limited to 'gcc/c-tree.h')
-rw-r--r-- | gcc/c-tree.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/c-tree.h b/gcc/c-tree.h index a33d64d7d27..8264ebd0690 100644 --- a/gcc/c-tree.h +++ b/gcc/c-tree.h @@ -153,6 +153,7 @@ extern int yyparse_1 PARAMS ((void)); extern void gen_aux_info_record PARAMS ((tree, int, int, int)); /* in c-decl.c */ +extern tree build_array_declarator PARAMS ((tree, tree, int, int)); extern tree build_enumerator PARAMS ((tree, tree)); #define c_build_type_variant(TYPE, CONST_P, VOLATILE_P) \ @@ -197,6 +198,7 @@ extern void push_label_level PARAMS ((void)); extern void push_parm_decl PARAMS ((tree)); extern tree pushdecl_top_level PARAMS ((tree)); extern void pushtag PARAMS ((tree, tree)); +extern tree set_array_declarator_type PARAMS ((tree, tree, int)); extern tree shadow_label PARAMS ((tree)); extern void shadow_record_fields PARAMS ((tree)); extern void shadow_tag PARAMS ((tree)); |