1! RUN: %if aarch64-registered-target %{ %flang -v -S -emit-llvm -o - %s --target=aarch64-linux-gnu -fno-pie 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-STATIC,CHECK-STATIC-IR %} 2 3! RUN: %if aarch64-registered-target %{ %flang -v -S -emit-llvm -o - %s --target=aarch64-linux-gnu 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-PIE-LEVEL2,CHECK-PIE-LEVEL2-IR %} 4! RUN: %if aarch64-registered-target %{ %flang -v -S -emit-llvm -o - %s --target=aarch64-linux-gnu -fpie 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-PIE-LEVEL1,CHECK-PIE-LEVEL1-IR %} 5! RUN: %if aarch64-registered-target %{ %flang -v -S -emit-llvm -o - %s --target=aarch64-linux-gnu -fPIE 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-PIE-LEVEL2,CHECK-PIE-LEVEL2-IR %} 6 7! RUN: %if aarch64-registered-target %{ %flang -v -S -emit-llvm -o - %s --target=aarch64-linux-gnu -fpic 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-PIC-LEVEL1,CHECK-PIC-LEVEL1-IR %} 8! RUN: %if aarch64-registered-target %{ %flang -v -S -emit-llvm -o - %s --target=aarch64-linux-gnu -fPIC 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-PIC-LEVEL2,CHECK-PIC-LEVEL2-IR %} 9 10! RUN: %if x86-registered-target %{ %flang -v -### -o - %s --target=i386-apple-darwin -mdynamic-no-pic 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-DYNAMIC-NO-PIC-32 %} 11! RUN: %if x86-registered-target %{ %flang -v -### -o - %s --target=x86_64-apple-darwin -mdynamic-no-pic 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-DYNAMIC-NO-PIC-64 %} 12 13! RUN: %if arm-registered-target %{ %flang -v -### -o - %s --target=arm-none-eabi -fropi 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-ROPI %} 14! RUN: %if arm-registered-target %{ %flang -v -### -o - %s --target=arm-none-eabi -frwpi 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-RWPI %} 15! RUN: %if arm-registered-target %{ %flang -v -### -o - %s --target=arm-none-eabi -fropi -frwpi 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-ROPI-RWPI %} 16 17! CHECK: -fc1 18 19 20!! -fno-pie. 21! CHECK-STATIC: -mrelocation-model static 22! CHECK-STATIC-NOT: -pic 23 24! CHECK-STATIC-IR-NOT: {{PIE|PIC}} Level 25 26 27!! -fpic. 28! CHECK-PIC-LEVEL1: -mrelocation-model pic -pic-level 1 29! CHECK-PIC-LEVEL1-NOT: -pic-is-pie 30 31! CHECK-PIC-LEVEL1-IR-NOT: "PIE Level" 32! CHECK-PIC-LEVEL1-IR: !"PIC Level", i32 1} 33! CHECK-PIC-LEVEL1-IR-NOT: "PIE Level" 34 35 36!! -fPIC. 37! CHECK-PIC-LEVEL2: -mrelocation-model pic -pic-level 2 38! CHECK-PIC-LEVEL2-NOT: -pic-is-pie 39 40! CHECK-PIC-LEVEL2-IR-NOT: "PIE Level" 41! CHECK-PIC-LEVEL2-IR: !"PIC Level", i32 2} 42! CHECK-PIC-LEVEL2-IR-NOT: "PIE Level" 43 44 45!! -fpie. 46! CHECK-PIE-LEVEL1: -mrelocation-model pic -pic-level 1 -pic-is-pie 47! CHECK-PIE-LEVEL1-IR: !"PIC Level", i32 1} 48! CHECK-PIE-LEVEL1-IR: !"PIE Level", i32 1} 49 50 51!! -fPIE. 52! CHECK-PIE-LEVEL2: -mrelocation-model pic -pic-level 2 -pic-is-pie 53! CHECK-PIE-LEVEL2-IR: !"PIC Level", i32 2} 54! CHECK-PIE-LEVEL2-IR: !"PIE Level", i32 2} 55 56 57!! -mdynamic-no-pic 58! CHECK-DYNAMIC-NO-PIC-32: "-mrelocation-model" "dynamic-no-pic" 59! CHECK-DYNAMIC-NO-PIC-32-NOT: "-pic-level" 60! CHECK-DYNAMIC-NO-PIC-32-NOT: "-pic-is-pie" 61 62! CHECK-DYNAMIC-NO-PIC-64: "-mrelocation-model" "dynamic-no-pic" "-pic-level" "2" 63! CHECK-DYNAMIC-NO-PIC-64-NOT: "-pic-is-pie" 64 65 66!! -fropi -frwpi 67! CHECK-ROPI: "-mrelocation-model" "ropi" 68! CHECK-ROPI-NOT: "-pic 69 70! CHECK-RWPI: "-mrelocation-model" "rwpi" 71! CHECK-RWPI-NOT: "-pic 72 73! CHECK-ROPI-RWPI: "-mrelocation-model" "ropi-rwpi" 74! CHECK-ROPI-RWPI-NOT: "-pic 75