Skip to content

Commit dee058f

Browse files
tclin914patrick
and
patrick
authored
[RISCV] Emit predefined macro __riscv_cmodel_large for large code model (#108131)
Co-authored-by: patrick <[email protected]>
1 parent cc40a46 commit dee058f

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

clang/lib/Basic/Targets/RISCV.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,8 @@ void RISCVTargetInfo::getTargetDefines(const LangOptions &Opts,
146146
Builder.defineMacro("__riscv_cmodel_medlow");
147147
else if (CodeModel == "medium")
148148
Builder.defineMacro("__riscv_cmodel_medany");
149+
else if (CodeModel == "large")
150+
Builder.defineMacro("__riscv_cmodel_large");
149151

150152
StringRef ABIName = getABI();
151153
if (ABIName == "ilp32f" || ABIName == "lp64f")

clang/test/Preprocessor/riscv-cmodel.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
// CHECK-MEDLOW: #define __riscv_cmodel_medlow 1
1717
// CHECK-MEDLOW-NOT: __riscv_cmodel_medany
18+
// CHECK-MEDLOW-NOT: __riscv_cmodel_large
1819

1920
// RUN: %clang --target=riscv32-unknown-linux-gnu -march=rv32i -x c -E -dM %s \
2021
// RUN: -mcmodel=medium -o - | FileCheck --check-prefix=CHECK-MEDANY %s
@@ -28,3 +29,11 @@
2829

2930
// CHECK-MEDANY: #define __riscv_cmodel_medany 1
3031
// CHECK-MEDANY-NOT: __riscv_cmodel_medlow
32+
// CHECK-MEDANY-NOT: __riscv_cmodel_large
33+
34+
// RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -fno-pic -x c -E -dM %s \
35+
// RUN: -mcmodel=large -o - | FileCheck --check-prefix=CHECK-LARGE %s
36+
37+
// CHECK-LARGE: #define __riscv_cmodel_large 1
38+
// CHECK-LARGE-NOT: __riscv_cmodel_medlow
39+
// CHECK-LARGE-NOT: __riscv_cmodel_medany

0 commit comments

Comments
 (0)