1 /// Check PS4 specific interactions between visibility options.
2 /// Detailed testing of -fvisibility-from-dllstorageclass is covered elsewhere.
5 // RUN
: %clang -
### -target x86_64-scei-ps4 -x cl -c -emit-llvm %s
2>&1 | \
6 // RUN
: FileCheck -check-prefix
=DEFAULT %s --implicit-check-not
=fvisibility --implicit-check-not
=ftype-visibility --implicit-check-not
=dllstorageclass
7 // DEFAULT-DAG
: "-fvisibility-from-dllstorageclass"
8 // DEFAULT-DAG
: "-fvisibility-dllexport=protected"
9 // DEFAULT-DAG
: "-fvisibility-nodllstorageclass=hidden"
10 // DEFAULT-DAG
: "-fvisibility-externs-dllimport=default"
11 // DEFAULT-DAG
: "-fvisibility-externs-nodllstorageclass=default"
13 /// Check that -fvisibility-from-dllstorageclass is added in the presence of -fvisibility
=.
14 // RUN
: %clang -
### -target x86_64-scei-ps4 -x cl -c -emit-llvm -fvisibility
=default %s
2>&1 | \
15 // RUN
: FileCheck -check-prefixes
=DEFAULT
,VISEQUALS %s --implicit-check-not
=fvisibility --implicit-check-not
=ftype-visibility --implicit-check-not
=dllstorageclass
16 // VISEQUALS-DAG
: "-fvisibility=default"
18 /// Check that -fvisibility-from-dllstorageclass is added in the presence of -fvisibility-ms-compat.
19 // RUN
: %clang -
### -target x86_64-scei-ps4 -x cl -c -emit-llvm -fvisibility-ms-compat %s
2>&1 | \
20 // RUN
: FileCheck -check-prefixes
=DEFAULT
,MSCOMPT %s --implicit-check-not
=fvisibility --implicit-check-not
=ftype-visibility --implicit-check-not
=dllstorageclass
21 // MSCOMPT-DAG
: "-fvisibility=hidden"
22 // MSCOMPT-DAG
: "-ftype-visibility=default"
24 /// -fvisibility-from-dllstorageclass added explicitly.
25 // RUN
: %clang -
### -target x86_64-scei-ps4 -x cl -c -emit-llvm -fvisibility-from-dllstorageclass %s
2>&1 | \
26 // RUN
: FileCheck -check-prefixes
=DEFAULT %s --implicit-check-not
=fvisibility --implicit-check-not
=ftype-visibility --implicit-check-not
=dllstorageclass
28 /// -fvisibility-from-dllstorageclass disabled explicitly.
29 // RUN
: %clang -
### -target x86_64-scei-ps4 -x cl -c -emit-llvm -fno-visibility-from-dllstorageclass %s
2>&1 | \
30 // RUN
: FileCheck -check-prefixes
=NOVISFROM %s --implicit-check-not
=fvisibility --implicit-check-not
=ftype-visibility --implicit-check-not
=dllstorageclass
31 // NOVISFROM-NOT
: "-fvisibility-from-dllstorageclass"