1 // Check behaviour of -fvisibility-from-dllstorageclass options
3 // RUN: %clang -target x86_64-unknown-windows-itanium -fdeclspec \
4 // RUN: -Werror -S -### %s 2>&1 | \
6 // RUN: --implicit-check-not=-fvisibility-from-dllstorageclass \
7 // RUN: --implicit-check-not=-fvisibility-dllexport \
8 // RUN: --implicit-check-not=-fvisibility-nodllstorageclass \
9 // RUN: --implicit-check-not=-fvisibility-externs-dllimport \
10 // RUN: --implicit-check-not=-fvisibility-externs-nodllstorageclass
12 // RUN: %clang -target x86_64-unknown-windows-itanium -fdeclspec \
13 // RUN: -fvisibility-from-dllstorageclass \
14 // RUN: -fno-visibility-from-dllstorageclass \
15 // RUN: -Werror -S -### %s 2>&1 | \
16 // RUN: FileCheck %s \
17 // RUN: --implicit-check-not=-fvisibility-from-dllstorageclass \
18 // RUN: --implicit-check-not=-fvisibility-dllexport \
19 // RUN: --implicit-check-not=-fvisibility-nodllstorageclass \
20 // RUN: --implicit-check-not=-fvisibility-externs-dllimport \
21 // RUN: --implicit-check-not=-fvisibility-externs-nodllstorageclass
23 // RUN: %clang -target x86_64-unknown-windows-itanium -fdeclspec \
24 // RUN: -fno-visibility-from-dllstorageclass \
25 // RUN: -fvisibility-from-dllstorageclass \
26 // RUN: -Werror -S -### %s 2>&1 | \
27 // RUN: FileCheck %s --check-prefix=SET \
28 // RUN: --implicit-check-not=-fvisibility-from-dllstorageclass \
29 // RUN: --implicit-check-not=-fvisibility-dllexport \
30 // RUN: --implicit-check-not=-fvisibility-nodllstorageclass \
31 // RUN: --implicit-check-not=-fvisibility-externs-dllimport \
32 // RUN: --implicit-check-not=-fvisibility-externs-nodllstorageclass
34 // RUN: %clang -target x86_64-unknown-windows-itanium -fdeclspec \
35 // RUN: -fvisibility-dllexport=hidden \
36 // RUN: -fvisibility-nodllstorageclass=protected \
37 // RUN: -fvisibility-externs-dllimport=hidden \
38 // RUN: -fvisibility-externs-nodllstorageclass=protected \
39 // RUN: -S -### %s 2>&1 | \
40 // RUN: FileCheck %s --check-prefixes=UNUSED \
41 // RUN: --implicit-check-not=-fvisibility-from-dllstorageclass \
42 // RUN: --implicit-check-not=-fvisibility-dllexport \
43 // RUN: --implicit-check-not=-fvisibility-nodllstorageclass \
44 // RUN: --implicit-check-not=-fvisibility-externs-dllimport \
45 // RUN: --implicit-check-not=-fvisibility-externs-nodllstorageclass \
46 // RUN: --implicit-check-not=error: \
47 // RUN: --implicit-check-not=warning:
49 // RUN: %clang -target x86_64-unknown-windows-itanium -fdeclspec \
50 // RUN: -fno-visibility-from-dllstorageclass \
51 // RUN: -fvisibility-dllexport=hidden \
52 // RUN: -fvisibility-nodllstorageclass=protected \
53 // RUN: -fvisibility-externs-dllimport=hidden \
54 // RUN: -fvisibility-externs-nodllstorageclass=protected \
55 // RUN: -S -### %s 2>&1 | \
56 // RUN: FileCheck %s --check-prefixes=UNUSED \
57 // RUN: --implicit-check-not=-fvisibility-from-dllstorageclass \
58 // RUN: --implicit-check-not=-fvisibility-dllexport \
59 // RUN: --implicit-check-not=-fvisibility-nodllstorageclass \
60 // RUN: --implicit-check-not=-fvisibility-externs-dllimport \
61 // RUN: --implicit-check-not=-fvisibility-externs-nodllstorageclass \
62 // RUN: --implicit-check-not=error: \
63 // RUN: --implicit-check-not=warning:
65 // UNUSED: warning: argument unused during compilation: '-fvisibility-dllexport=hidden'
66 // UNUSED-NEXT: warning: argument unused during compilation: '-fvisibility-nodllstorageclass=protected'
67 // UNUSED-NEXT: warning: argument unused during compilation: '-fvisibility-externs-dllimport=hidden'
68 // UNUSED-NEXT: warning: argument unused during compilation: '-fvisibility-externs-nodllstorageclass=protected'
70 // RUN: %clang -target x86_64-unknown-windows-itanium -fdeclspec \
71 // RUN: -fvisibility-from-dllstorageclass \
72 // RUN: -fvisibility-dllexport=default \
73 // RUN: -fvisibility-dllexport=hidden \
74 // RUN: -fvisibility-nodllstorageclass=default \
75 // RUN: -fvisibility-nodllstorageclass=protected \
76 // RUN: -fvisibility-externs-dllimport=default \
77 // RUN: -fvisibility-externs-dllimport=hidden \
78 // RUN: -fvisibility-externs-nodllstorageclass=default \
79 // RUN: -fvisibility-externs-nodllstorageclass=protected \
80 // RUN: -Werror -S -### %s 2>&1 | \
81 // RUN: FileCheck %s --check-prefixes=SET,ALL
83 // SET: "-fvisibility-from-dllstorageclass"
84 // ALL-SAME: "-fvisibility-dllexport=hidden"
85 // ALL-SAME: "-fvisibility-nodllstorageclass=protected"
86 // ALL-SAME: "-fvisibility-externs-dllimport=hidden"
87 // ALL-SAME: "-fvisibility-externs-nodllstorageclass=protected"