// RUN: %clang_cc1 -DTEST1 -verify %s
// RUN: %clang_cc1 -DTEST2 -verify %s 2>&1 | FileCheck -check-prefix=CHECK2 %s
// RUN: %clang_cc1 -DTEST3 -verify %s 2>&1 | FileCheck -check-prefix=CHECK3 %s
// RUN: %clang_cc1 -DTEST4 -verify %s 2>&1 | FileCheck -check-prefix=CHECK4 %s
// RUN: %clang_cc1 -DTEST5 -verify %s 2>&1 | FileCheck -check-prefix=CHECK5 %s

// 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

#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!

//      CHECK2: error: 'error' diagnostics expected but not seen:
// CHECK2-NEXT:   Line 41: define_error
// CHECK2-NEXT:   Line 43: line_error
// CHECK2-NEXT: error: 'error' diagnostics seen but not expected:
// 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
// CHECK2-NEXT: error: 'warning' diagnostics expected but not seen:
// CHECK2-NEXT:   Line 42: undef_error
// CHECK2-NEXT: error: 'warning' diagnostics seen but not expected:
// 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

//      CHECK3: error: 'note' diagnostics expected but not seen:
// 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}}

//      CHECK4: error: 'error' diagnostics expected but not seen:
// CHECK4-NEXT:   Line 92: include_error
// CHECK4-NEXT: error: 'error' diagnostics seen but not expected:
// 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}}

//      CHECK5: error: 'error' diagnostics expected but not seen:
// 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

