Clang Project

clang_source_code/test/CodeGen/arm-execute-only.c
1// RUN: %clang -target armv6t2-eabi -### %s 2>&1 \
2// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
3
4// RUN: %clang -target armv6t2-eabi -### -mexecute-only %s 2>&1 \
5// RUN:    | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY
6
7// RUN: %clang -target armv6t2-eabi -### -mexecute-only -mno-execute-only %s 2>&1 \
8// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
9
10// RUN: %clang -target armv7m-eabi -### %s 2>&1 \
11// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
12
13// RUN: %clang -target armv7m-eabi -### -mexecute-only %s 2>&1 \
14// RUN:    | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY
15
16// RUN: %clang -target armv7m-eabi -### -mexecute-only -mno-execute-only %s 2>&1 \
17// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
18
19// RUN: %clang -target armv8m.base-eabi -### %s 2>&1 \
20// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
21
22// RUN: %clang -target armv8m.base-eabi -### -mexecute-only %s 2>&1 \
23// RUN:    | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY
24
25// RUN: %clang -target armv8m.base-eabi -### -mexecute-only -mno-execute-only %s 2>&1 \
26// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
27
28// RUN: %clang -target armv8m.main-eabi -### %s 2>&1 \
29// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
30
31// RUN: %clang -target armv8m.main-eabi -### -mexecute-only %s 2>&1 \
32// RUN:    | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY
33
34// RUN: %clang -target armv8m.main-eabi -### -mexecute-only -mno-execute-only %s 2>&1 \
35// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
36
37
38// -mpure-code flag for GCC compatibility
39// RUN: %clang -target armv6t2-eabi -### %s 2>&1 \
40// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
41
42// RUN: %clang -target armv6t2-eabi -### -mpure-code %s 2>&1 \
43// RUN:    | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY
44
45// RUN: %clang -target armv6t2-eabi -### -mpure-code -mno-pure-code %s 2>&1 \
46// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
47
48// RUN: %clang -target armv7m-eabi -### %s 2>&1 \
49// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
50
51// RUN: %clang -target armv7m-eabi -### -mpure-code %s 2>&1 \
52// RUN:    | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY
53
54// RUN: %clang -target armv7m-eabi -### -mpure-code -mno-pure-code %s 2>&1 \
55// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
56
57// RUN: %clang -target armv8m.base-eabi -### %s 2>&1 \
58// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
59
60// RUN: %clang -target armv8m.base-eabi -### -mpure-code %s 2>&1 \
61// RUN:    | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY
62
63// RUN: %clang -target armv8m.base-eabi -### -mpure-code -mno-pure-code %s 2>&1 \
64// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
65
66// RUN: %clang -target armv8m.main-eabi -### %s 2>&1 \
67// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
68
69// RUN: %clang -target armv8m.main-eabi -### -mpure-code %s 2>&1 \
70// RUN:    | FileCheck %s -check-prefix CHECK-EXECUTE-ONLY
71
72// RUN: %clang -target armv8m.main-eabi -### -mpure-code -mno-pure-code %s 2>&1 \
73// RUN:    | FileCheck %s -check-prefix CHECK-NO-EXECUTE-ONLY
74
75// CHECK-NO-EXECUTE-ONLY-NOT: "+execute-only"
76// CHECK-EXECUTE-ONLY: "+execute-only"
77
78void a() {}
79