aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2009-04-18 16:28:40 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2009-04-18 16:28:40 +0100
commita5cb563b79b71ef5dbf3c3c0aca014c785f79927 (patch)
tree77102eabd471055daec6714f7c09468dba337166 /gcc
parent2586ba4bdaaa47413b9c03ff164d926fe52f8dc1 (diff)
downloadgcc-a5cb563b79b71ef5dbf3c3c0aca014c785f79927.zip
gcc-a5cb563b79b71ef5dbf3c3c0aca014c785f79927.tar.gz
gcc-a5cb563b79b71ef5dbf3c3c0aca014c785f79927.tar.bz2
re PR preprocessor/39647 (Syntax checks in #line not quite right)
libcpp: PR preprocessor/39647 * directives.c (check_eol): Add parameter expand. (do_undef, parse_include, do_line, do_linemarker, do_ident, do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef, do_else, do_endif, do_assert, do_unassert): All callers changed. Pass true from do_line, false elsewhere. gcc/testsuite: * gcc.dg/cpp/line7.c: New test. From-SVN: r146316
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/cpp/line7.c19
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 846725e..58ea487 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-18 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/39647
+ * gcc.dg/cpp/line7.c: New test.
+
2009-04-18 Richard Guenther <rguenther@suse.de>
PR middle-end/39804
diff --git a/gcc/testsuite/gcc.dg/cpp/line7.c b/gcc/testsuite/gcc.dg/cpp/line7.c
new file mode 100644
index 0000000..754727e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/line7.c
@@ -0,0 +1,19 @@
+/* Test #line syntax, including macro expansion and empty macros. PR
+ 39647. */
+
+/* { dg-do preprocess } */
+/* { dg-options "-std=c99 -pedantic-errors" } */
+
+#define EMPTY_OBJ
+#define EMPTY_FUNC()
+
+#define A 12 "line7.c"
+#line A
+
+#line EMPTY_OBJ /* { dg-error "unexpected end of file" } */
+#line X /* { dg-error "is not a positive integer" } */
+#line 16 16 /* { dg-error "is not a valid filename" } */
+
+#line 18 "line7.c" EMPTY_OBJ
+#line 19 "line7.c" EMPTY_FUNC()
+#line 20 "line7.c" foo /* { dg-error "extra tokens at end" } */