• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Test the driver's control over the PIC behavior. These consist of tests of
2 // the relocation model flags and the pic level flags passed to CC1.
3 //
4 // CHECK-NO-PIC: "-mrelocation-model" "static"
5 // CHECK-NO-PIC-NOT: "-pic-level"
6 // CHECK-NO-PIC-NOT: "-pie-level"
7 //
8 // CHECK-DYNAMIC-NO-PIC1: "-mrelocation-model" "dynamic-no-pic"
9 // CHECK-DYNAMIC-NO-PIC1: "-pic-level" "1"
10 //
11 // CHECK-DYNAMIC-NO-PIC2: "-mrelocation-model" "dynamic-no-pic"
12 // CHECK-DYNAMIC-NO-PIC2: "-pic-level" "2"
13 //
14 // CHECK-PIC1-NOT: "-mrelocation-model"
15 // CHECK-PIC1: "-pic-level" "1"
16 //
17 // CHECK-PIC2-NOT: "-mrelocation-model"
18 // CHECK-PIC2: "-pic-level" "2"
19 //
20 // CHECK-PIE1-NOT: "-mrelocation-model"
21 // CHECK-PIE1: "-pie-level" "1"
22 //
23 // CHECK-PIE2-NOT: "-mrelocation-model"
24 // CHECK-PIE2: "-pie-level" "2"
25 //
26 // RUN: %clang -c %s -target i386-unknown-unknown -### 2>&1 \
27 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
28 // RUN: %clang -c %s -target i386-unknown-unknown -fpic -### 2>&1 \
29 // RUN:   | FileCheck %s --check-prefix=CHECK-PIC1
30 // RUN: %clang -c %s -target i386-unknown-unknown -fPIC -### 2>&1 \
31 // RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
32 // RUN: %clang -c %s -target i386-unknown-unknown -fpie -### 2>&1 \
33 // RUN:   | FileCheck %s --check-prefix=CHECK-PIE1
34 // RUN: %clang -c %s -target i386-unknown-unknown -fPIE -### 2>&1 \
35 // RUN:   | FileCheck %s --check-prefix=CHECK-PIE2
36 // RUN: %clang -c %s -target i386-unknown-unknown -fpic -fno-pic -### 2>&1 \
37 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
38 // RUN: %clang -c %s -target i386-unknown-unknown -fPIC -fno-PIC -### 2>&1 \
39 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
40 // RUN: %clang -c %s -target i386-unknown-unknown -fpic -fno-PIC -### 2>&1 \
41 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
42 // RUN: %clang -c %s -target i386-unknown-unknown -fPIC -fno-pic -### 2>&1 \
43 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
44 // RUN: %clang -c %s -target i386-unknown-unknown -fpie -fno-pie -### 2>&1 \
45 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
46 // RUN: %clang -c %s -target i386-unknown-unknown -fPIE -fno-PIE -### 2>&1 \
47 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
48 // RUN: %clang -c %s -target i386-unknown-unknown -fpie -fno-PIE -### 2>&1 \
49 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
50 // RUN: %clang -c %s -target i386-unknown-unknown -fPIE -fno-pie -### 2>&1 \
51 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
52 // RUN: %clang -c %s -target i386-unknown-unknown -fpie -fno-pic -### 2>&1 \
53 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
54 // RUN: %clang -c %s -target i386-unknown-unknown -fpic -fno-pie -### 2>&1 \
55 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
56 // RUN: %clang -c %s -target i386-unknown-unknown -fpic -fPIC -### 2>&1 \
57 // RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
58 // RUN: %clang -c %s -target i386-unknown-unknown -fPIC -fpic -### 2>&1 \
59 // RUN:   | FileCheck %s --check-prefix=CHECK-PIC1
60 // RUN: %clang -c %s -target i386-unknown-unknown -fpic -fPIE -fpie -### 2>&1 \
61 // RUN:   | FileCheck %s --check-prefix=CHECK-PIE1
62 // RUN: %clang -c %s -target i386-unknown-unknown -fpie -fPIC -fPIE -### 2>&1 \
63 // RUN:   | FileCheck %s --check-prefix=CHECK-PIE2
64 //
65 // Defaults change for Darwin.
66 // RUN: %clang -c %s -target i386-apple-darwin -### 2>&1 \
67 // RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
68 // RUN: %clang -c %s -target i386-apple-darwin -fno-pic -### 2>&1 \
69 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
70 // RUN: %clang -c %s -target i386-apple-darwin -fno-PIC -### 2>&1 \
71 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
72 //
73 // Disregard any of the PIC-specific flags if we have a trump-card flag.
74 // RUN: %clang -c %s -target i386-unknown-unknown -mkernel -fPIC -### 2>&1 \
75 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
76 // RUN: %clang -c %s -target i386-unknown-unknown -static -fPIC -### 2>&1 \
77 // RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
78 // RUN: %clang -c %s -target i386-unknown-unknown -mdynamic-no-pic -fPIC -### 2>&1 \
79 // RUN:   | FileCheck %s --check-prefix=CHECK-DYNAMIC-NO-PIC1
80 // RUN: %clang -c %s -target i386-apple-darwin -mdynamic-no-pic -fPIC -### 2>&1 \
81 // RUN:   | FileCheck %s --check-prefix=CHECK-DYNAMIC-NO-PIC2
82