From 38e5cf0983e02b2fc77d77adfd9b937768dfcfd5 Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Wed, 18 May 2016 20:36:59 +0200 Subject: tccpp: Fix macro_is_equal When tokens in macro definitions need cstr_buf inside get_tok_str, the second might overwrite the first (happens when tokens are multi-character non-identifiers, see testcase) in macro_is_equal, failing to diagnose a difference. Use a real local buffer. --- tests/pp/16.c | 3 +++ tests/pp/16.expect | 2 ++ 2 files changed, 5 insertions(+) create mode 100644 tests/pp/16.c create mode 100644 tests/pp/16.expect (limited to 'tests/pp') diff --git a/tests/pp/16.c b/tests/pp/16.c new file mode 100644 index 0000000..8b5b642 --- /dev/null +++ b/tests/pp/16.c @@ -0,0 +1,3 @@ +/* The following should warn */ +#define A ... +#define A <<= diff --git a/tests/pp/16.expect b/tests/pp/16.expect new file mode 100644 index 0000000..695d6d4 --- /dev/null +++ b/tests/pp/16.expect @@ -0,0 +1,2 @@ + +16.c:3: warning: A redefined -- cgit v1.3.1