Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions clang/lib/Basic/Targets/RISCV.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ void RISCVTargetInfo::getTargetDefines(const LangOptions &Opts,
Builder.defineMacro("__riscv_cmodel_medlow");
else if (CodeModel == "medium")
Builder.defineMacro("__riscv_cmodel_medany");
else if (CodeModel == "large")
Builder.defineMacro("__riscv_cmodel_large");

StringRef ABIName = getABI();
if (ABIName == "ilp32f" || ABIName == "lp64f")
Expand Down
9 changes: 9 additions & 0 deletions clang/test/Preprocessor/riscv-cmodel.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

// CHECK-MEDLOW: #define __riscv_cmodel_medlow 1
// CHECK-MEDLOW-NOT: __riscv_cmodel_medany
// CHECK-MEDLOW-NOT: __riscv_cmodel_large

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

// CHECK-MEDANY: #define __riscv_cmodel_medany 1
// CHECK-MEDANY-NOT: __riscv_cmodel_medlow
// CHECK-MEDANY-NOT: __riscv_cmodel_large

// RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -x c -E -dM %s \
// RUN: -mcmodel=large -o - | FileCheck --check-prefix=CHECK-LARGE %s

// CHECK-LARGE: #define __riscv_cmodel_large 1
// CHECK-LARGE-NOT: __riscv_cmodel_medlow
// CHECK-LARGE-NOT: __riscv_cmodel_medany