]> gcc.gnu.org Git - gcc.git/commit
libcpp: Fix paste error with unknown pragma after macro expansion
authorLewis Hyatt <lhyatt@gmail.com>
Wed, 2 Nov 2022 20:04:36 +0000 (16:04 -0400)
committerLewis Hyatt <lhyatt@gmail.com>
Mon, 21 Nov 2022 22:47:19 +0000 (17:47 -0500)
commit6f46d14d4989b2711379807e4565585123c48118
tree4d9b583c7133a103c323aa9271fa6507ebb0de54
parent5c0d171f67d082c353ddc319859111d3b9126c17
libcpp: Fix paste error with unknown pragma after macro expansion

In directives.cc, do_pragma() contains logic to handle a case such as the new
testcase pragma-omp-unknown.c, where an unknown pragma was the result of macro
expansion (for pragma namespaces that permit expansion). This no longer works
correctly as shown by the testcase, fixed by adding PREV_WHITE to the flags on
the second token to prevent an unwanted paste.  Also fixed the memory leak,
since the temporary tokens are pushed on their own context, nothing prevents
freeing of the buffer that holds them when the context is eventually popped.

libcpp/ChangeLog:

* directives.cc (do_pragma): Fix memory leak in token buffer.  Fix
unwanted paste between two tokens.

gcc/testsuite/ChangeLog:

* c-c++-common/gomp/pragma-omp-unknown.c: New test.
gcc/testsuite/c-c++-common/gomp/pragma-omp-unknown.c [new file with mode: 0644]
libcpp/directives.cc
This page took 0.057976 seconds and 5 git commands to generate.