From 697017e6fae8c252638abc298ec1556de2e41314 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Sat, 24 Apr 2021 02:15:32 -0400 Subject: Fix lexer/preproc diagnose issue (#1806) * #include an absolute path didn't work - because paths were taken to always be relative. * Pass LexerFlags to all lexing functionality that may output a diagnostic. * Add test for lexing disabling issue. * Improve tests. Co-authored-by: Yong He --- tests/bugs/preproc-lex-failure-2.slang | 12 ++++++++++++ tests/bugs/preproc-lex-failure-2.slang.expected | 12 ++++++++++++ tests/bugs/preproc-lex-failure.slang | 12 ++++++++++++ tests/bugs/preproc-lex-failure.slang.expected | 6 ++++++ 4 files changed, 42 insertions(+) create mode 100644 tests/bugs/preproc-lex-failure-2.slang create mode 100644 tests/bugs/preproc-lex-failure-2.slang.expected create mode 100644 tests/bugs/preproc-lex-failure.slang create mode 100644 tests/bugs/preproc-lex-failure.slang.expected (limited to 'tests') diff --git a/tests/bugs/preproc-lex-failure-2.slang b/tests/bugs/preproc-lex-failure-2.slang new file mode 100644 index 000000000..a3caf1634 --- /dev/null +++ b/tests/bugs/preproc-lex-failure-2.slang @@ -0,0 +1,12 @@ +//DIAGNOSTIC_TEST:SIMPLE:-E + +// Test that diagnostics appear for invalid tokens. + +#if 1 +// Octal warning +000 +/// Unclosed string literal +"Hello! +#else +Hello +#endif diff --git a/tests/bugs/preproc-lex-failure-2.slang.expected b/tests/bugs/preproc-lex-failure-2.slang.expected new file mode 100644 index 000000000..8365e74e8 --- /dev/null +++ b/tests/bugs/preproc-lex-failure-2.slang.expected @@ -0,0 +1,12 @@ +result code = 0 +standard error = { +tests/bugs/preproc-lex-failure-2.slang(4): warning 10002: '0' prefix indicates octal literal +000 +^~~ +tests/bugs/preproc-lex-failure-2.slang(5): error 10005: newline in literal + +^ +} +standard output = { +000 "Hello! +} diff --git a/tests/bugs/preproc-lex-failure.slang b/tests/bugs/preproc-lex-failure.slang new file mode 100644 index 000000000..42c807ae2 --- /dev/null +++ b/tests/bugs/preproc-lex-failure.slang @@ -0,0 +1,12 @@ +//DIAGNOSTIC_TEST:SIMPLE:-E + +#if 0 +// Octal warning +000 +/// Unclosed string literal +"Hello! +/// A non 7 bit ascii code +Š +#else +Hello +#endif \ No newline at end of file diff --git a/tests/bugs/preproc-lex-failure.slang.expected b/tests/bugs/preproc-lex-failure.slang.expected new file mode 100644 index 000000000..e4505eb4f --- /dev/null +++ b/tests/bugs/preproc-lex-failure.slang.expected @@ -0,0 +1,6 @@ +result code = 0 +standard error = { +} +standard output = { +Hello +} -- cgit v1.2.3