glsl/glcpp: Test that macro parameters substitute immediately after periods
authorCarl Worth <cworth@cworth.org>
Thu, 26 Jun 2014 17:08:34 +0000 (10:08 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 29 Jul 2014 22:11:50 +0000 (15:11 -0700)
At one point while rewriting the lexing rule for pre-processing numbers, I
made it a bit too aggressive and within a replacement list sucked up a
parameter name that appeared immediately after a period. This caused the
parameter name to be unreplaced when the macro was expanded.

It was in some piglit tests that I originally found this issue. Here, I'm
adding a test to "make check" to ensure that this behavior remains correct.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/glsl/glcpp/tests/137-expand-macro-after-period.c [new file with mode: 0644]
src/glsl/glcpp/tests/137-expand-macro-after-period.c.expected [new file with mode: 0644]

diff --git a/src/glsl/glcpp/tests/137-expand-macro-after-period.c b/src/glsl/glcpp/tests/137-expand-macro-after-period.c
new file mode 100644 (file)
index 0000000..c8cd47f
--- /dev/null
@@ -0,0 +1,4 @@
+#define FIELD(x) foo.x
+#define FIELD_OF(s, x) s.x
+FIELD(bar)
+FIELD_OF(foo, bar)
diff --git a/src/glsl/glcpp/tests/137-expand-macro-after-period.c.expected b/src/glsl/glcpp/tests/137-expand-macro-after-period.c.expected
new file mode 100644 (file)
index 0000000..f9f5be1
--- /dev/null
@@ -0,0 +1,4 @@
+
+
+foo.bar
+foo.bar