[PATCH] Macro body is trailing array
https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01037.html * include/cpplib.h (enum cpp_macro_kind): New. (struct cpp_macro): Make body trailing array. Add kind field, delete traditional flag. * internal.h (_cpp_new_macro): Declare. (_cpp_reserve_room): New inline. (_cpp_commit_buf): Declare. (_cpp_create_trad_definition): Return new macro. * lex.c (_cpp_commit_buff): New. * macro.c (macro_real_token_count): Count backwards. (replace_args): Pointer equality not orderedness. (_cpp_save_parameter): Use _cpp_reserve_room. (alloc_expansion_token): Delete. (lex_expansion_token): Return macro pointer. Use _cpp_reserve_room. (create_iso_definition): Allocate macro itself. Adjust for different allocation ordering. (_cpp_new_macro): New. (_cpp_create_definition): Adjust for API changes. * traditional.c (push_replacement_text): Don't set traditional flag. (save_replacement_text): Likewise. (_cpp_create_trad_definition): Allocate macro itself, Adjust for different allocation ordering. From-SVN: r263622
Showing
- gcc/c-family/ChangeLog 2 additions, 0 deletionsgcc/c-family/ChangeLog
- gcc/c-family/c-ada-spec.c 2 additions, 2 deletionsgcc/c-family/c-ada-spec.c
- libcpp/ChangeLog 23 additions, 0 deletionslibcpp/ChangeLog
- libcpp/include/cpplib.h 22 additions, 12 deletionslibcpp/include/cpplib.h
- libcpp/internal.h 10 additions, 1 deletionlibcpp/internal.h
- libcpp/lex.c 19 additions, 0 deletionslibcpp/lex.c
- libcpp/macro.c 117 additions, 119 deletionslibcpp/macro.c
- libcpp/traditional.c 30 additions, 29 deletionslibcpp/traditional.c
Loading
Please register or sign in to comment