2012-07-11 19:58:23 +00:00
|
|
|
// RUN: %clang_cc1 -DTEST1 -verify %s
|
2013-07-04 16:16:58 +00:00
|
|
|
// RUN: not %clang_cc1 -DTEST2 -verify %s 2>&1 | FileCheck -check-prefix=CHECK2 %s
|
|
|
|
// RUN: not %clang_cc1 -DTEST3 -verify %s 2>&1 | FileCheck -check-prefix=CHECK3 %s
|
|
|
|
// RUN: not %clang_cc1 -DTEST4 -verify %s 2>&1 | FileCheck -check-prefix=CHECK4 %s
|
|
|
|
// RUN: not %clang_cc1 -DTEST5 -verify %s 2>&1 | FileCheck -check-prefix=CHECK5 %s
|
2012-07-11 19:58:23 +00:00
|
|
|
|
|
|
|
// expected-warning@ malformed
|
|
|
|
// expected-error@7 1 {{missing or invalid line number}}
|
|
|
|
|
|
|
|
// expected-warning@0 malformed
|
|
|
|
// expected-error@10 {{missing or invalid line number}}
|
|
|
|
|
|
|
|
// expected-warning@-50 malformed
|
|
|
|
// expected-error@13 {{missing or invalid line number}}
|
|
|
|
|
|
|
|
// expected-warning malformed
|
|
|
|
// expected-error@16 {{cannot find start}}
|
|
|
|
|
|
|
|
// expected-error 0+ {{should also be ignored}}
|
|
|
|
|
|
|
|
#ifdef TEST1
|
|
|
|
#if 0
|
|
|
|
// expected-error {{should be ignored}}
|
|
|
|
#endif
|
2012-10-19 12:36:49 +00:00
|
|
|
// eexpected-error {{should also be ignored: unrecognised directive}}
|
2012-07-11 19:58:23 +00:00
|
|
|
#error should not be ignored
|
|
|
|
// expected-error@-1 1+ {{should not be ignored}}
|
|
|
|
|
|
|
|
#line 90
|
|
|
|
unexpected a; // expected-error@+0 + {{unknown type}}
|
|
|
|
|
|
|
|
#line 60
|
|
|
|
unexpected b; // expected-error@33 1-1 {{unknown type}}
|
|
|
|
|
|
|
|
// expected-error@+2 {{file not found}} check that multi-line handled correctly: \
|
|
|
|
|
|
|
|
#include "missing_header_file.include"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef TEST2
|
|
|
|
#define MACRO some_value // expected-error {{define_error}}
|
|
|
|
#undef MACRO extra_token // expected-warning {{undef_error}}
|
|
|
|
#line -2 // expected-error {{line_error}}
|
|
|
|
#error AAA // expected-error {{BBB}} <- this shall be part of diagnostic
|
|
|
|
#warning CCC // expected-warning {{DDD}} <- this shall be part of diagnostic
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
// This is encapsulated in "#if 0" so that the expected-* checks below
|
|
|
|
// are not inadvertently included in the diagnostic checking!
|
|
|
|
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK2: error: 'expected-error' diagnostics expected but not seen:
|
2012-07-11 19:58:23 +00:00
|
|
|
// CHECK2-NEXT: Line 41: define_error
|
|
|
|
// CHECK2-NEXT: Line 43: line_error
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK2-NEXT: error: 'expected-error' diagnostics seen but not expected:
|
2012-07-11 19:58:23 +00:00
|
|
|
// CHECK2-NEXT: Line 43: #line directive requires a positive integer argument
|
|
|
|
// CHECK2-NEXT: Line 44: AAA // expected-error {{[{][{]BBB[}][}]}} <- this shall be part of diagnostic
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK2-NEXT: error: 'expected-warning' diagnostics expected but not seen:
|
2012-07-11 19:58:23 +00:00
|
|
|
// CHECK2-NEXT: Line 42: undef_error
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK2-NEXT: error: 'expected-warning' diagnostics seen but not expected:
|
2012-07-11 19:58:23 +00:00
|
|
|
// CHECK2-NEXT: Line 42: extra tokens at end of #undef directive
|
|
|
|
// CHECK2-NEXT: Line 45: CCC // expected-warning {{[{][{]DDD[}][}]}} <- this shall be part of diagnostic
|
|
|
|
// CHECK2-NEXT: 7 errors generated.
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef TEST3
|
|
|
|
#ifndef TEST3 // expected-note {{line_67}}
|
|
|
|
// expected-note {{line_68_ignored}}
|
|
|
|
# ifdef UNDEFINED // expected-note {{line_69_ignored}}
|
|
|
|
# endif // expected-note {{line_70_ignored}}
|
|
|
|
#elif defined(TEST3) // expected-note {{line_71}}
|
|
|
|
# if 1 // expected-note {{line_72}}
|
|
|
|
// expected-note {{line_73}}
|
|
|
|
# else // expected-note {{line_74}}
|
|
|
|
// expected-note {{line_75_ignored}}
|
|
|
|
# ifndef TEST3 // expected-note {{line_76_ignored}}
|
|
|
|
# endif // expected-note {{line_77_ignored}}
|
|
|
|
# endif // expected-note {{line_78}}
|
|
|
|
#endif
|
|
|
|
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK3: error: 'expected-note' diagnostics expected but not seen:
|
2012-07-11 19:58:23 +00:00
|
|
|
// CHECK3-NEXT: Line 67: line_67
|
|
|
|
// CHECK3-NEXT: Line 71: line_71
|
|
|
|
// CHECK3-NEXT: Line 72: line_72
|
|
|
|
// CHECK3-NEXT: Line 73: line_73
|
|
|
|
// CHECK3-NEXT: Line 74: line_74
|
|
|
|
// CHECK3-NEXT: Line 78: line_78
|
|
|
|
// CHECK3-NEXT: 6 errors generated.
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef TEST4
|
|
|
|
#include "missing_header_file.include" // expected-error {{include_error}}
|
|
|
|
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK4: error: 'expected-error' diagnostics expected but not seen:
|
2012-07-11 19:58:23 +00:00
|
|
|
// CHECK4-NEXT: Line 92: include_error
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK4-NEXT: error: 'expected-error' diagnostics seen but not expected:
|
2012-07-11 19:58:23 +00:00
|
|
|
// CHECK4-NEXT: Line 92: 'missing_header_file.include' file not found
|
|
|
|
// CHECK4-NEXT: 2 errors generated.
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef TEST5
|
|
|
|
#include "verify-directive.h"
|
|
|
|
// expected-error@50 {{source file test}}
|
|
|
|
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK5: error: 'expected-error' diagnostics expected but not seen:
|
2012-07-11 19:58:23 +00:00
|
|
|
// CHECK5-NEXT: Line 1 (directive at {{.*}}verify-directive.h:2): include file test
|
|
|
|
// CHECK5-NEXT: Line 50 (directive at {{.*}}verify.c:103): source file test
|
|
|
|
// CHECK5-NEXT: 2 errors generated.
|
|
|
|
#endif
|
|
|
|
|
2012-08-10 01:06:16 +00:00
|
|
|
#if 0
|
2013-07-04 16:16:58 +00:00
|
|
|
// RUN: not %clang_cc1 -verify %t.invalid 2>&1 | FileCheck -check-prefix=CHECK6 %s
|
2012-08-10 01:06:16 +00:00
|
|
|
|
2012-10-19 12:49:32 +00:00
|
|
|
// CHECK6: error: no expected directives found: consider use of 'expected-no-diagnostics'
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK6-NEXT: error: 'expected-error' diagnostics seen but not expected:
|
2012-08-10 01:06:16 +00:00
|
|
|
// CHECK6-NEXT: (frontend): error reading '{{.*}}verify.c.tmp.invalid'
|
2012-10-19 12:49:32 +00:00
|
|
|
// CHECK6-NEXT: 2 errors generated.
|
2012-08-10 01:06:16 +00:00
|
|
|
|
2013-08-29 03:02:39 +00:00
|
|
|
// RUN: printf '//expected-error@2{{1}}\n#error 2\n' | not %clang_cc1 -verify 2>&1 | FileCheck -check-prefix=CHECK7 %s
|
2012-08-10 01:06:16 +00:00
|
|
|
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK7: error: 'expected-error' diagnostics expected but not seen:
|
2012-08-10 01:06:16 +00:00
|
|
|
// CHECK7-NEXT: Line 2 (directive at <stdin>:1): 1
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK7-NEXT: error: 'expected-error' diagnostics seen but not expected:
|
2012-08-10 01:06:16 +00:00
|
|
|
// CHECK7-NEXT: Line 2: 2
|
|
|
|
// CHECK7-NEXT: 2 errors generated.
|
|
|
|
#endif
|
2013-04-17 08:06:46 +00:00
|
|
|
|
|
|
|
#ifdef TEST8
|
2013-07-04 16:16:58 +00:00
|
|
|
// RUN: not %clang_cc1 -DTEST8 -verify %s 2>&1 | FileCheck -check-prefix=CHECK8 %s
|
2013-04-17 08:06:46 +00:00
|
|
|
|
2013-10-29 02:34:44 +00:00
|
|
|
// expected-warning@nonexistent-file:1 {{ }}
|
|
|
|
// expected-error@-1 {{file 'nonexistent-file' could not be located}}
|
2013-04-17 08:06:46 +00:00
|
|
|
|
|
|
|
// expected-warning@verify-directive.h: {{ }}
|
|
|
|
// expected-error@-1 {{missing or invalid line number}}
|
|
|
|
|
2014-07-10 16:43:29 +00:00
|
|
|
// expected-warning@verify-directive.h:0 {{ }}
|
|
|
|
// expected-error@-1 {{missing or invalid line number}}
|
|
|
|
|
|
|
|
// expected-warning@verify-directive.h:0*{{ }}
|
|
|
|
// expected-error@-1 {{missing or invalid line number}}
|
|
|
|
|
|
|
|
// expected-warning@verify-directive.h:*0{{ }}
|
|
|
|
// syntactically ok -- means match in any line for 0 occurrences.
|
|
|
|
|
2013-04-17 08:06:46 +00:00
|
|
|
// expected-warning@verify-directive.h:1 {{diagnostic}}
|
|
|
|
|
2023-07-07 10:28:42 +02:00
|
|
|
// CHECK8: error: 'expected-warning' diagnostics expected but not seen:
|
2014-07-10 16:43:29 +00:00
|
|
|
// CHECK8-NEXT: File {{.*}}verify-directive.h Line 1 (directive at {{.*}}verify.c:146): diagnostic
|
2013-04-17 08:06:46 +00:00
|
|
|
// CHECK8-NEXT: 1 error generated.
|
|
|
|
#endif
|
2023-07-07 10:28:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
#ifdef TEST9
|
|
|
|
// RUN: not %clang_cc1 -DTEST9 -verify=what %s 2>&1 | FileCheck -check-prefix=CHECK9 %s
|
|
|
|
|
|
|
|
// what-error {{huh?}}
|
|
|
|
// CHECK9: error: 'what-error' diagnostics expected but not seen:
|
|
|
|
#endif
|
2024-01-09 12:45:57 -08:00
|
|
|
|
|
|
|
#ifdef TEST_WIDE_DELIM
|
|
|
|
// RUN: not %clang_cc1 -DTEST_WIDE_DELIM -verify %s 2>&1 | FileCheck -check-prefix=CHECK-WIDE-DELIM %s
|
|
|
|
|
|
|
|
// expected-error {{{some message with {{}} in it}}}
|
|
|
|
// expected-error {{{some message with {}} in it}}}
|
|
|
|
// expected-error {{{some message with {{} in it}}}
|
|
|
|
|
|
|
|
// expected-error-re {{{some {{.*}} regex with double braces}}}
|
|
|
|
// expected-error-re {{{some message with {{} in it}}}
|
|
|
|
|
|
|
|
// expected-error {{{mismatched delim}}
|
|
|
|
// expected-error-re {{{mismatched re {{.*} }}}
|
|
|
|
// expected-error-re {{{no regex}}}
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
// CHECK-WIDE-DELIM: error: 'expected-error' diagnostics expected but not seen:
|
|
|
|
// CHECK-WIDE-DELIM-NEXT: verify.c Line 164: some message with {{[{]{}[}]}} in it
|
|
|
|
// CHECK-WIDE-DELIM-NEXT: verify.c Line 165: some message with {}} in it
|
|
|
|
// CHECK-WIDE-DELIM-NEXT: verify.c Line 166: some message with {{[{]{[}]}} in it
|
|
|
|
// CHECK-WIDE-DELIM-NEXT: verify.c Line 168: {some {{.*}} regex with double braces
|
|
|
|
// CHECK-WIDE-DELIM-NEXT: error: 'expected-error' diagnostics seen but not expected:
|
|
|
|
// CHECK-WIDE-DELIM-NEXT: verify.c Line 169: cannot find end ('}}') of expected regex
|
|
|
|
// CHECK-WIDE-DELIM-NEXT: verify.c Line 171: cannot find end ('}}}') of expected string
|
|
|
|
// CHECK-WIDE-DELIM-NEXT: verify.c Line 172: cannot find end ('}}') of expected regex
|
|
|
|
// CHECK-WIDE-DELIM-NEXT: verify.c Line 173: cannot find start of regex ('{{[{][{]}}') in {no regex
|
|
|
|
// CHECK-WIDE-DELIM-NEXT: 8 errors generated.
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
2024-02-07 19:40:17 +05:30
|
|
|
|
|
|
|
#ifdef TEST10
|
|
|
|
// RUN: not %clang_cc1 -DTEST10 -verify=foo %s 2>&1 | FileCheck -check-prefix=CHECK10 %s
|
|
|
|
|
|
|
|
// CHECK10: error: no expected directives found: consider use of 'foo-no-diagnostics'
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef TEST11
|
|
|
|
// RUN: not %clang_cc1 -DTEST11 -verify=foo %s 2>&1 | FileCheck -check-prefix=CHECK11 %s
|
|
|
|
|
|
|
|
// foo-no-diagnostics
|
|
|
|
// foo-note {{}}
|
|
|
|
|
|
|
|
// CHECK11: error: 'foo-error' diagnostics seen but not expected:
|
2025-02-27 17:58:34 +01:00
|
|
|
// CHECK11-NEXT: Line 201: 'foo-note' directive cannot follow 'foo-no-diagnostics' directive
|
2024-02-07 19:40:17 +05:30
|
|
|
// CHECK11-NEXT: 1 error generated.
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef TEST12
|
|
|
|
// RUN: not %clang_cc1 -DTEST12 -verify=foo %s 2>&1 | FileCheck -check-prefix=CHECK12 %s
|
|
|
|
|
|
|
|
#warning X
|
|
|
|
// foo-warning@-1 {{X}}
|
|
|
|
// foo-no-diagnostics
|
|
|
|
|
|
|
|
// CHECK12: error: 'foo-error' diagnostics seen but not expected:
|
|
|
|
// CHECK12-NEXT: Line 213: 'foo-no-diagnostics' directive cannot follow other expected directives
|
|
|
|
// CHECK12-NEXT: 1 error generated.
|
|
|
|
#endif
|