summaryrefslogtreecommitdiff
path: root/gcc/c-tree.h
diff options
context:
space:
mode:
authorJoseph Myers <jsm28@cam.ac.uk>2001-05-25 12:12:47 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2001-05-25 12:12:47 +0100
commit0e03329a6f5e6abf7df9adb8331136414e6fb5a6 (patch)
tree0d9cee59da5c70c8d1b6baefbc0569ba13d97432 /gcc/c-tree.h
parentb60868e00c8cc0fdda3018293c6c1149a62bed52 (diff)
downloadgcc-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.h2
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));