[PATCH] Macro definition parameter parsing
commitbef0714819bca838c9f6015a5251bdc2545df98b
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Aug 2018 19:18:42 +0000 (16 19:18 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Aug 2018 19:18:42 +0000 (16 19:18 +0000)
tree8cba46feaa371a76edad8a772eeab6d7071b0b7d
parentf439574fd1b586dbd875e77dad0b32bb8027b1ab
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263600 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/cpp/macsyntx.c
gcc/testsuite/gcc.dg/cpp/macsyntx2.c
libcpp/ChangeLog
libcpp/internal.h
libcpp/macro.c
libcpp/traditional.c