aboutsummaryrefslogtreecommitdiff
path: root/libcpp/internal.h
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2018-08-16 19:18:42 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2018-08-16 19:18:42 +0000
commit729a01f72ca6c1bd106cb2285187191c3568201b (patch)
tree8cba46feaa371a76edad8a772eeab6d7071b0b7d /libcpp/internal.h
parentc37da7c0e8d022f4ad85bd0adf7f80886df9c94e (diff)
downloadgcc-729a01f72ca6c1bd106cb2285187191c3568201b.zip
gcc-729a01f72ca6c1bd106cb2285187191c3568201b.tar.gz
gcc-729a01f72ca6c1bd106cb2285187191c3568201b.tar.bz2
[PATCH] Macro definition parameter parsing
https://gcc.gnu.org/ml/gcc-patches/2018-08/msg00977.html libcpp/ * internal.h (_cpp_save_parameter): Take parmno, not macro. (_cpp_unsave_parameters): Declare. * macro.c (_cpp_save_parameter): Take parm number, not macro. Return true on success. (_cpp_unsave_parameters): New. (parse_params): Take parm_no and variadic pointers, not macro. Reimplement parsing logic. (create_iso_definition): Adjust parse_params changes. Call _cpp_unsave_parameters here. (_cpp_create_definition): Don't unsave params here. * traditional.c (scan_parameters): Take n_param pointer, adjust. (_cpp_create_trad_definition): Ajust scan_parameters change. Call _cpp_unsave_parameters. gcc/testsuite/ * gcc.dg/cpp/macsyntx.c: Adjust expected errors. * gcc.dg/cpp/macsyntx2.c: likewise. From-SVN: r263600
Diffstat (limited to 'libcpp/internal.h')
-rw-r--r--libcpp/internal.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/libcpp/internal.h b/libcpp/internal.h
index dd145ab..0012520 100644
--- a/libcpp/internal.h
+++ b/libcpp/internal.h
@@ -632,8 +632,9 @@ extern bool _cpp_create_definition (cpp_reader *, cpp_hashnode *);
extern void _cpp_pop_context (cpp_reader *);
extern void _cpp_push_text_context (cpp_reader *, cpp_hashnode *,
const unsigned char *, size_t);
-extern bool _cpp_save_parameter (cpp_reader *, cpp_macro *, cpp_hashnode *,
+extern bool _cpp_save_parameter (cpp_reader *, unsigned, cpp_hashnode *,
cpp_hashnode *);
+extern void _cpp_unsave_parameters (cpp_reader *, unsigned);
extern bool _cpp_arguments_ok (cpp_reader *, cpp_macro *, const cpp_hashnode *,
unsigned int);
extern const unsigned char *_cpp_builtin_macro_text (cpp_reader *,