verify-ignore-unexpected.c 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // RUN: not %clang_cc1 -DTEST_SWITCH -verify-ignore-unexpected=remark,aoeu,note -verify %s 2>&1 \
  2. // RUN: | FileCheck -check-prefix=CHECK-BAD-SWITCH %s
  3. #ifdef TEST_SWITCH
  4. // expected-no-diagnostics
  5. #endif
  6. // CHECK-BAD-SWITCH: error: 'error' diagnostics seen but not expected:
  7. // CHECK-BAD-SWITCH-NEXT: (frontend): invalid value 'aoeu' in '-verify-ignore-unexpected='
  8. // RUN: %clang_cc1 -DTEST1 -verify %s
  9. // RUN: %clang_cc1 -DTEST1 -verify -verify-ignore-unexpected %s
  10. #ifdef TEST1
  11. #warning MyWarning1
  12. // expected-warning@-1 {{MyWarning1}}
  13. int x; // expected-note {{previous definition is here}}
  14. float x; // expected-error {{redefinition of 'x'}}
  15. #endif
  16. // RUN: not %clang_cc1 -DTEST2 -verify %s 2>&1 \
  17. // RUN: | FileCheck -check-prefix=CHECK-UNEXP %s
  18. // RUN: not %clang_cc1 -DTEST2 -verify -verify-ignore-unexpected= %s 2>&1 \
  19. // RUN: | FileCheck -check-prefix=CHECK-UNEXP %s
  20. // RUN: not %clang_cc1 -DTEST2 -verify -verify-ignore-unexpected=note %s 2>&1 \
  21. // RUN: | FileCheck -check-prefix=CHECK-NOTE %s
  22. // RUN: not %clang_cc1 -DTEST2 -verify -verify-ignore-unexpected=warning %s 2>&1 \
  23. // RUN: | FileCheck -check-prefix=CHECK-WARN %s
  24. // RUN: not %clang_cc1 -DTEST2 -verify -verify-ignore-unexpected=error %s 2>&1 \
  25. // RUN: | FileCheck -check-prefix=CHECK-ERR %s
  26. #ifdef TEST2
  27. #warning MyWarning2
  28. int x;
  29. float x;
  30. #endif
  31. // CHECK-UNEXP: no expected directives found
  32. // CHECK-UNEXP-NEXT: 'error' diagnostics seen but not expected
  33. // CHECK-UNEXP-NEXT: Line {{[0-9]+}}: redefinition of 'x'
  34. // CHECK-UNEXP-NEXT: 'warning' diagnostics seen but not expected
  35. // CHECK-UNEXP-NEXT: Line {{[0-9]+}}: MyWarning2
  36. // CHECK-UNEXP-NEXT: 'note' diagnostics seen but not expected
  37. // CHECK-UNEXP-NEXT: Line {{[0-9]+}}: previous definition is here
  38. // CHECK-UNEXP-NEXT: 4 errors generated.
  39. // CHECK-NOTE: no expected directives found
  40. // CHECK-NOTE-NEXT: 'error' diagnostics seen but not expected
  41. // CHECK-NOTE-NEXT: Line {{[0-9]+}}: redefinition of 'x'
  42. // CHECK-NOTE-NEXT: 'warning' diagnostics seen but not expected
  43. // CHECK-NOTE-NEXT: Line {{[0-9]+}}: MyWarning2
  44. // CHECK-NOTE-NEXT: 3 errors generated.
  45. // CHECK-WARN: no expected directives found
  46. // CHECK-WARN-NEXT: 'error' diagnostics seen but not expected
  47. // CHECK-WARN-NEXT: Line {{[0-9]+}}: redefinition of 'x'
  48. // CHECK-WARN-NEXT: 'note' diagnostics seen but not expected
  49. // CHECK-WARN-NEXT: Line {{[0-9]+}}: previous definition is here
  50. // CHECK-WARN-NEXT: 3 errors generated.
  51. // CHECK-ERR: no expected directives found
  52. // CHECK-ERR-NEXT: 'warning' diagnostics seen but not expected
  53. // CHECK-ERR-NEXT: Line {{[0-9]+}}: MyWarning2
  54. // CHECK-ERR-NEXT: 'note' diagnostics seen but not expected
  55. // CHECK-ERR-NEXT: Line {{[0-9]+}}: previous definition is here
  56. // CHECK-ERR-NEXT: 3 errors generated.
  57. // RUN: not %clang_cc1 -DTEST3 -verify -verify-ignore-unexpected %s 2>&1 \
  58. // RUN: | FileCheck -check-prefix=CHECK-EXP %s
  59. #ifdef TEST3
  60. // expected-error {{test3}}
  61. #endif
  62. // CHECK-EXP: 'error' diagnostics expected but not seen
  63. // CHECK-EXP-NEXT: Line {{[0-9]+}}: test3
  64. // RUN: not %clang_cc1 -DTEST4 -verify -verify-ignore-unexpected %s 2>&1 \
  65. // RUN: | FileCheck -check-prefix=CHECK-NOEXP %s
  66. // RUN: not %clang_cc1 -DTEST4 -verify -verify-ignore-unexpected=warning,error,note %s 2>&1 \
  67. // RUN: | FileCheck -check-prefix=CHECK-NOEXP %s
  68. #ifdef TEST4
  69. #warning MyWarning4
  70. int x;
  71. float x;
  72. #endif
  73. // CHECK-NOEXP: error: no expected directives found
  74. // CHECK-NOEXP-NEXT: 1 error generated