1 // Check behaviour of -fvisibility-from-dllstorageclass options for PS4
2 
3 // RUN: %clang -### -target x86_64-scei-ps4 %s -Werror -o - 2>&1 | \
4 // RUN:   FileCheck %s -check-prefixes=DEFAULTS,DEFAULTS1 \
5 // RUN:     --implicit-check-not=-fvisibility-from-dllstorageclass \
6 // RUN:     --implicit-check-not=-fvisibility-dllexport \
7 // RUN:     --implicit-check-not=-fvisibility-nodllstorageclass \
8 // RUN:     --implicit-check-not=-fvisibility-externs-dllimport \
9 // RUN:     --implicit-check-not=-fvisibility-externs-nodllstorageclass
10 
11 // RUN: %clang -### -target x86_64-scei-ps4 \
12 // RUN:     -fno-visibility-from-dllstorageclass \
13 // RUN:     -fvisibility-from-dllstorageclass \
14 // RUN:     -Werror \
15 // RUN:     %s -o - 2>&1 | \
16 // RUN:   FileCheck %s -check-prefixes=DEFAULTS,DEFAULTS2 \
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
22 
23 // DEFAULTS:      "-fvisibility-from-dllstorageclass"
24 // DEFAULTS-SAME: "-fvisibility-dllexport=protected"
25 // DEFAULTS-SAME: "-fvisibility-nodllstorageclass=hidden"
26 // DEFAULTS-SAME: "-fvisibility-externs-dllimport=default"
27 // DEFAULTS-SAME: "-fvisibility-externs-nodllstorageclass=default"
28 
29 // RUN: %clang -### -target x86_64-scei-ps4 \
30 // RUN:     -fvisibility-from-dllstorageclass \
31 // RUN:     -fvisibility-dllexport=hidden \
32 // RUN:     -fvisibility-nodllstorageclass=protected \
33 // RUN:     -fvisibility-externs-dllimport=hidden \
34 // RUN:     -fvisibility-externs-nodllstorageclass=protected \
35 // RUN:     -fno-visibility-from-dllstorageclass \
36 // RUN:     %s -o - 2>&1 | \
37 // RUN:   FileCheck %s -check-prefix=UNUSED \
38 // RUN:     --implicit-check-not=-fvisibility-from-dllstorageclass \
39 // RUN:     --implicit-check-not=-fvisibility-dllexport \
40 // RUN:     --implicit-check-not=-fvisibility-nodllstorageclass \
41 // RUN:     --implicit-check-not=-fvisibility-externs-dllimport \
42 // RUN:     --implicit-check-not=-fvisibility-externs-nodllstorageclass \
43 // RUN:     --implicit-check-not=warning:
44 
45 // UNUSED:      warning: argument unused during compilation: '-fvisibility-dllexport=hidden'
46 // UNUSED-NEXT: warning: argument unused during compilation: '-fvisibility-nodllstorageclass=protected'
47 // UNUSED-NEXT: warning: argument unused during compilation: '-fvisibility-externs-dllimport=hidden'
48 // UNUSED-NEXT: warning: argument unused during compilation: '-fvisibility-externs-nodllstorageclass=protected'
49 
50 // RUN: %clang -### -target x86_64-scei-ps4 \
51 // RUN:     -fvisibility-nodllstorageclass=protected \
52 // RUN:     -fvisibility-externs-dllimport=hidden \
53 // RUN:     -Werror \
54 // RUN:     %s -o - 2>&1 | \
55 // RUN:   FileCheck %s -check-prefix=SOME \
56 // RUN:     --implicit-check-not=-fvisibility-from-dllstorageclass \
57 // RUN:     --implicit-check-not=-fvisibility-dllexport \
58 // RUN:     --implicit-check-not=-fvisibility-nodllstorageclass \
59 // RUN:     --implicit-check-not=-fvisibility-externs-dllimport \
60 // RUN:     --implicit-check-not=-fvisibility-externs-nodllstorageclass
61 
62 // RUN: %clang -### -target x86_64-scei-ps4 \
63 // RUN:     -fvisibility-from-dllstorageclass \
64 // RUN:     -fvisibility-nodllstorageclass=protected \
65 // RUN:     -fvisibility-externs-dllimport=hidden \
66 // RUN:     -Werror \
67 // RUN:     %s -o - 2>&1 | \
68 // RUN:   FileCheck %s -check-prefix=SOME \
69 // RUN:     --implicit-check-not=-fvisibility-from-dllstorageclass \
70 // RUN:     --implicit-check-not=-fvisibility-dllexport \
71 // RUN:     --implicit-check-not=-fvisibility-nodllstorageclass \
72 // RUN:     --implicit-check-not=-fvisibility-externs-dllimport \
73 // RUN:     --implicit-check-not=-fvisibility-externs-nodllstorageclass
74 
75 // SOME:      "-fvisibility-from-dllstorageclass"
76 // SOME-SAME: "-fvisibility-dllexport=protected"
77 // SOME-SAME: "-fvisibility-nodllstorageclass=protected"
78 // SOME-SAME: "-fvisibility-externs-dllimport=hidden"
79 // SOME-SAME: "-fvisibility-externs-nodllstorageclass=default"
80 
81 // RUN: %clang -### -target x86_64-scei-ps4 \
82 // RUN:     -fvisibility-dllexport=default \
83 // RUN:     -fvisibility-dllexport=hidden \
84 // RUN:     -fvisibility-nodllstorageclass=default \
85 // RUN:     -fvisibility-nodllstorageclass=protected \
86 // RUN:     -fvisibility-externs-dllimport=default \
87 // RUN:     -fvisibility-externs-dllimport=hidden \
88 // RUN:     -fvisibility-externs-nodllstorageclass=default \
89 // RUN:     -fvisibility-externs-nodllstorageclass=protected \
90 // RUN:     -Werror \
91 // RUN:     %s -o - 2>&1 | \
92 // RUN:   FileCheck %s -check-prefix=ALL \
93 // RUN:     --implicit-check-not=-fvisibility-from-dllstorageclass \
94 // RUN:     --implicit-check-not=-fvisibility-dllexport \
95 // RUN:     --implicit-check-not=-fvisibility-nodllstorageclass \
96 // RUN:     --implicit-check-not=-fvisibility-externs-dllimport \
97 // RUN:     --implicit-check-not=-fvisibility-externs-nodllstorageclass
98 
99 // RUN: %clang -### -target x86_64-scei-ps4 \
100 // RUN:     -fvisibility-from-dllstorageclass \
101 // RUN:     -fvisibility-dllexport=default \
102 // RUN:     -fvisibility-dllexport=hidden \
103 // RUN:     -fvisibility-nodllstorageclass=default \
104 // RUN:     -fvisibility-nodllstorageclass=protected \
105 // RUN:     -fvisibility-externs-dllimport=default \
106 // RUN:     -fvisibility-externs-dllimport=hidden \
107 // RUN:     -fvisibility-externs-nodllstorageclass=default \
108 // RUN:     -fvisibility-externs-nodllstorageclass=protected \
109 // RUN:     -Werror \
110 // RUN:     %s -o - 2>&1 | \
111 // RUN:   FileCheck %s -check-prefix=ALL \
112 // RUN:     --implicit-check-not=-fvisibility-from-dllstorageclass \
113 // RUN:     --implicit-check-not=-fvisibility-dllexport \
114 // RUN:     --implicit-check-not=-fvisibility-nodllstorageclass \
115 // RUN:     --implicit-check-not=-fvisibility-externs-dllimport \
116 // RUN:     --implicit-check-not=-fvisibility-externs-nodllstorageclass
117 
118 // ALL:      "-fvisibility-from-dllstorageclass"
119 // ALL-SAME: "-fvisibility-dllexport=hidden"
120 // ALL-SAME: "-fvisibility-nodllstorageclass=protected"
121 // ALL-SAME: "-fvisibility-externs-dllimport=hidden"
122 // ALL-SAME: "-fvisibility-externs-nodllstorageclass=protected"
123