diff options
author | Nathan Sidwell <nathan@acm.org> | 2018-08-16 19:18:42 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2018-08-16 19:18:42 +0000 |
commit | 729a01f72ca6c1bd106cb2285187191c3568201b (patch) | |
tree | 8cba46feaa371a76edad8a772eeab6d7071b0b7d /libcpp/internal.h | |
parent | c37da7c0e8d022f4ad85bd0adf7f80886df9c94e (diff) | |
download | gcc-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.h | 3 |
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 *, |