[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Driver / ps4-sdk-root.c
blob78eb1ce2ba630283dfd47652265bf153a0ddb5ad
1 /// PS4 clang emits warnings when SDK headers (<SDKROOT>/target/include/) or
2 /// libraries (<SDKROOT>/target/lib/) are missing, unless the user takes control
3 /// of search paths, when corresponding existence checks are skipped.
4 ///
5 /// User control of header search is assumed if `--sysroot`, `-isysroot`,
6 /// `-nostdinc` or `-nostdlibinc` is supplied. User control of library search
7 /// is assumed if `--sysroot` is supplied.
8 ///
9 /// Warnings are emitted if a specified `-isysroot` or `--sysroot` does not
10 /// exist.
11 ///
12 /// The default <SDKROOT> for both headers and libraries is taken from the
13 /// SCE_ORBIS_SDK_DIR environment variable.
15 // RUN: echo "-### -Winvalid-or-nonexistent-directory -target x86_64-scei-ps4" > %t.rsp
17 /// If SDK headers and/or libraries are found, associated warnings are absent.
18 // RUN: rm -rf %t.inconly && mkdir -p %t.inconly/target/include
19 // RUN: env SCE_ORBIS_SDK_DIR=%t.inconly %clang @%t.rsp %s 2>&1 | FileCheck -check-prefixes=WARN-SYS-LIBS,NO-WARN %s
21 // RUN: rm -rf %t.libonly && mkdir -p %t.libonly/target/lib
22 // RUN: env SCE_ORBIS_SDK_DIR=%t.libonly %clang @%t.rsp %s 2>&1 | FileCheck -check-prefixes=WARN-SYS-HEADERS,NO-WARN %s
24 // RUN: rm -rf %t.both && mkdir -p %t.both/target/lib && mkdir %t.both/target/include
25 // RUN: env SCE_ORBIS_SDK_DIR=%t.both %clang @%t.rsp %s 2>&1 | FileCheck -check-prefix=NO-WARN %s
27 /// In the following invocations, SCE_ORBIS_SDK_DIR is set to an existing
28 /// location where SDK headers and libraries are absent.
30 /// When compiling and linking, we should see a warnings about both missing
31 /// headers and libraries.
32 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s 2>&1 | FileCheck -check-prefixes=WARN-SYS-HEADERS,WARN-SYS-LIBS,NO-WARN %s
34 /// If `-c`, `-S`, `-E` or `-emit-ast` is supplied, the existence check for SDK
35 /// libraries is skipped because no linking will be performed. We only expect
36 /// warnings about missing headers.
37 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s -c 2>&1 | FileCheck -check-prefixes=WARN-SYS-HEADERS,NO-WARN %s
38 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s -S 2>&1 | FileCheck -check-prefixes=WARN-SYS-HEADERS,NO-WARN %s
39 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s -E 2>&1 | FileCheck -check-prefixes=WARN-SYS-HEADERS,NO-WARN %s
40 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s -emit-ast 2>&1 | FileCheck -check-prefixes=WARN-SYS-HEADERS,NO-WARN %s
42 /// If the user takes control of include paths, the existence check for headers
43 /// is not performed.
44 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s -c -nostdinc 2>&1 | FileCheck -check-prefix=NO-WARN %s
45 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s -c -nostdlibinc 2>&1 | FileCheck -check-prefix=NO-WARN %s
46 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s -c -isysroot . 2>&1 | FileCheck -check-prefixes=NO-WARN %s
47 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s -c --sysroot=. 2>&1 | FileCheck -check-prefixes=NO-WARN %s
49 /// --sysroot disables the existence check for libraries and headers.
50 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s --sysroot=. 2>&1 | FileCheck -check-prefix=NO-WARN %s
52 /// -isysroot overrides --sysroot for header search, but not library search.
53 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s -isysroot . --sysroot=.. 2>&1 | FileCheck -check-prefixes=ISYSTEM,NO-WARN %s
54 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s --sysroot=.. -isysroot . 2>&1 | FileCheck -check-prefixes=ISYSTEM,NO-WARN %s
56 /// Warnings are emitted if non-existent --sysroot/-isysroot are supplied.
57 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s --sysroot=foo -isysroot . 2>&1 | FileCheck -check-prefixes=WARN-SYSROOT,NO-WARN %s
58 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s -isysroot foo --sysroot=. 2>&1 | FileCheck -check-prefixes=WARN-SYSROOT,NO-WARN %s
59 // RUN: env SCE_ORBIS_SDK_DIR=.. %clang @%t.rsp %s --sysroot=foo -isysroot bar 2>&1 | FileCheck -check-prefixes=WARN-SYSROOT,WARN-SYSROOT2,NO-WARN %s
61 // NO-WARN-NOT: {{warning:|error:}}
62 // WARN-SYS-LIBS: warning: unable to find PS4 system libraries directory
63 // WARN-SYS-HEADERS: warning: unable to find PS4 system headers directory
64 // WARN-SYSROOT: warning: no such sysroot directory: 'foo'
65 // WARN-SYSROOT2: warning: no such sysroot directory: 'bar'
66 // NO-WARN-NOT: {{warning:|error:}}
67 // ISYSTEM: "-cc1"{{.*}}"-internal-externc-isystem" "./target/include"