Files
swift-mirror/test/ClangImporter/experimental_diagnostics_cmacros.swift
Doug Gregor 69ab4fc56c Use LLVM diagnostic style for a number of Clang importer tests
These tests are checking the printed outpout of the diagnostic formatter
in ways that change with the Swift formatter, but are not consequential.
2024-02-19 02:48:36 -10:00

143 lines
7.3 KiB
Swift

// RUN: not %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck %s -diagnostic-style llvm 2>&1 | %FileCheck %s --strict-whitespace
import macros
_ = INVALID_INTEGER_LITERAL_2
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'INVALID_INTEGER_LITERAL_2' in scope
// CHECK-NEXT: _ = INVALID_INTEGER_LITERAL_2
// CHECK-NEXT: ^~~~~~~~~~~~~~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'INVALID_INTEGER_LITERAL_2' unavailable (cannot import)
// CHECK-NEXT: #define INVALID_INTEGER_LITERAL_2 10abc
// CHECK-NEXT: {{^}} ^
// CHECK-NEXT: macros.h:{{[0-9]+}}:35: note: invalid numeric literal
// CHECK-NEXT: #define INVALID_INTEGER_LITERAL_2 10abc
// CHECK-NEXT: {{^}} ^
_ = FUNC_LIKE_MACRO()
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'FUNC_LIKE_MACRO' in scope
// CHECK-NEXT: _ = FUNC_LIKE_MACRO()
// CHECK-NEXT: ^~~~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'FUNC_LIKE_MACRO' unavailable: function like macros not supported
// CHECK-NEXT: #define FUNC_LIKE_MACRO() 0
// CHECK-NEXT: {{^}} ^
_ = FUNC_LIKE_MACRO()
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'FUNC_LIKE_MACRO' in scope
// CHECK-NEXT: _ = FUNC_LIKE_MACRO()
// CHECK-NEXT: ^~~~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'FUNC_LIKE_MACRO' unavailable: function like macros not supported
// CHECK-NEXT: #define FUNC_LIKE_MACRO() 0
// CHECK-NEXT: {{^}} ^
_ = INVALID_ARITHMETIC_1
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'INVALID_ARITHMETIC_1' in scope
// CHECK-NEXT: _ = INVALID_ARITHMETIC_1
// CHECK-NEXT: ^~~~~~~~~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'INVALID_ARITHMETIC_1' unavailable: structure not supported
// CHECK-NEXT: #define INVALID_ARITHMETIC_1 5 + INVALID_INTEGER_LITERAL_1
// CHECK-NEXT: {{^}} ^
_ = INVALID_ARITHMETIC_2
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'INVALID_ARITHMETIC_2' in scope
// CHECK-NEXT: _ = INVALID_ARITHMETIC_2
// CHECK-NEXT: ^~~~~~~~~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'INVALID_ARITHMETIC_2' unavailable: structure not supported
// CHECK-NEXT: #define INVALID_ARITHMETIC_2 INVALID_INTEGER_LITERAL_1 + ADD_TWO
// CHECK-NEXT: {{^}} ^
_ = INVALID_ARITHMETIC_3
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'INVALID_ARITHMETIC_3' in scope
// CHECK-NEXT: _ = INVALID_ARITHMETIC_3
// CHECK-NEXT: ^~~~~~~~~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'INVALID_ARITHMETIC_3' unavailable: structure not supported
// CHECK-NEXT: #define INVALID_ARITHMETIC_3 ADD_TWO + INVALID_INTEGER_LITERAL_1
// CHECK-NEXT: {{^}} ^
_ = INVALID_ARITHMETIC_4
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'INVALID_ARITHMETIC_4' in scope
// CHECK-NEXT: _ = INVALID_ARITHMETIC_4
// CHECK-NEXT: ^~~~~~~~~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'INVALID_ARITHMETIC_4' unavailable: structure not supported
// CHECK-NEXT: #define INVALID_ARITHMETIC_4 \
// CHECK-NEXT: {{^}} ^
_ = INVALID_ARITHMETIC_5
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'INVALID_ARITHMETIC_5' in scope
// CHECK-NEXT: _ = INVALID_ARITHMETIC_5
// CHECK-NEXT: ^~~~~~~~~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'INVALID_ARITHMETIC_5' unavailable: structure not supported
// CHECK-NEXT: #define INVALID_ARITHMETIC_5 1 + VERSION_STRING
// CHECK-NEXT: {{^}} ^
_ = INVALID_ARITHMETIC_6
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'INVALID_ARITHMETIC_6' in scope
// CHECK-NEXT: _ = INVALID_ARITHMETIC_6
// CHECK-NEXT: ^~~~~~~~~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'INVALID_ARITHMETIC_6' unavailable: structure not supported
// CHECK-NEXT: #define INVALID_ARITHMETIC_6 1 + 'c'
// CHECK-NEXT: {{^}} ^
_ = INVALID_ARITHMETIC_7
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'INVALID_ARITHMETIC_7' in scope
// CHECK-NEXT: _ = INVALID_ARITHMETIC_7
// CHECK-NEXT: ^~~~~~~~~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'INVALID_ARITHMETIC_7' unavailable (cannot import)
// CHECK-NEXT: #define INVALID_ARITHMETIC_7 3 % 2
// CHECK-NEXT: {{^}} ^
// CHECK-NEXT: macros.h:{{[0-9]+}}:32: note: operator '%' not supported in macro arithmetic
// CHECK-NEXT: #define INVALID_ARITHMETIC_7 3 % 2
// CHECK-NEXT: {{^}} ^
_ = CHAR_LITERAL
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'CHAR_LITERAL' in scope
// CHECK-NEXT: _ = CHAR_LITERAL
// CHECK-NEXT: ^~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'CHAR_LITERAL' unavailable (cannot import)
// CHECK-NEXT: #define CHAR_LITERAL 'a'
// CHECK-NEXT: {{^}} ^
// CHECK-NEXT: macros.h:{{[0-9]+}}:22: note: only numeric and string macro literals supported
// CHECK-NEXT: #define CHAR_LITERAL 'a'
// CHECK-NEXT: {{^}} ^
UNSUPPORTED_1
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'UNSUPPORTED_1' in scope
// CHECK-NEXT: UNSUPPORTED_1
// CHECK-NEXT: ^~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'UNSUPPORTED_1' unavailable: structure not supported
// CHECK-NEXT: #define UNSUPPORTED_1 FUNC_LIKE_MACRO()
// CHECK-NEXT: {{^}} ^
UNSUPPORTED_2
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'UNSUPPORTED_2' in scope
// CHECK-NEXT: UNSUPPORTED_2
// CHECK-NEXT: ^~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'UNSUPPORTED_2' unavailable: structure not supported
// CHECK-NEXT: #define UNSUPPORTED_2 FUNC_LIKE_MACRO_2(1)
// CHECK-NEXT: {{^}} ^
UNSUPPORTED_3
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'UNSUPPORTED_3' in scope
// CHECK-NEXT: UNSUPPORTED_3
// CHECK-NEXT: ^~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'UNSUPPORTED_3' unavailable: structure not supported
// CHECK-NEXT: #define UNSUPPORTED_3 1 + FUNC_LIKE_MACRO_2(1)
// CHECK-NEXT: {{^}} ^
UNSUPPORTED_4
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'UNSUPPORTED_4' in scope
// CHECK-NEXT: UNSUPPORTED_4
// CHECK-NEXT: ^~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'UNSUPPORTED_4' unavailable: structure not supported
// CHECK-NEXT: #define UNSUPPORTED_4 \
// CHECK-NEXT: {{^}} ^
UNSUPPORTED_5
// CHECK: experimental_diagnostics_cmacros.swift:{{[0-9]+}}:{{[0-9]+}}: error: cannot find 'UNSUPPORTED_5' in scope
// CHECK-NEXT: UNSUPPORTED_5
// CHECK-NEXT: ^~~~~~~~~~~~~
// CHECK-NEXT: macros.h:{{[0-9]+}}:9: note: macro 'UNSUPPORTED_5' unavailable: structure not supported
// CHECK-NEXT: #define UNSUPPORTED_5 1 + 1 + 1
// CHECK-NEXT: {{^}} ^