From d8fdd380f39aa413886c61c2e3624ba3b4582dc0 Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Sun, 9 Jul 2017 04:30:36 +0200 Subject: tccpp: Fix corner case See added testcase 19.c from a bug report. The problem is reading outside the arguments buffers, even though we aren't allowed to. The single can_read_stream variable is not enough, sometimes we need to be able to pop into outer contexts but not into arbitrarily outside contexts. The trick is to terminate argument tokens with a EOF (and not just with 0 that makes us pop contexts), and deal with that in the few places we have to, This enables some cleanups of the can_read_stream variable use. --- tests/pp/20.expect | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 tests/pp/20.expect (limited to 'tests/pp/20.expect') diff --git a/tests/pp/20.expect b/tests/pp/20.expect new file mode 100644 index 0000000..d19405d --- /dev/null +++ b/tests/pp/20.expect @@ -0,0 +1,6 @@ +X1 printk(KERN_WARNING "pipapo",bla); +X2 printk(KERN_WARNING "bla",foo); +X2 twoopq +X3 otwopq +X4 optwoq +X5 opqtwo -- cgit v1.3.1