File tree Expand file tree Collapse file tree 3 files changed +30
-2
lines changed
clang/lib/Driver/ToolChains Expand file tree Collapse file tree 3 files changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -260,15 +260,19 @@ void Flang::AddPPCTargetArgs(const ArgList &Args,
260260
261261void Flang::AddRISCVTargetArgs (const ArgList &Args,
262262 ArgStringList &CmdArgs) const {
263+ const Driver &D = getToolChain ().getDriver ();
263264 const llvm::Triple &Triple = getToolChain ().getTriple ();
264265
265266 StringRef ABIName = riscv::getRISCVABI (Args, Triple);
266- CmdArgs.push_back (Args.MakeArgString (" -mabi=" + ABIName));
267+ if (ABIName == " lp64" || ABIName == " lp64f" || ABIName == " lp64d" )
268+ CmdArgs.push_back (Args.MakeArgString (" -mabi=" + ABIName));
269+ else
270+ D.Diag (diag::err_drv_unsupported_option_argument)
271+ << " -mabi=" << ABIName;
267272
268273 // Handle -mrvv-vector-bits=<bits>
269274 if (Arg *A = Args.getLastArg (options::OPT_mrvv_vector_bits_EQ)) {
270275 StringRef Val = A->getValue ();
271- const Driver &D = getToolChain ().getDriver ();
272276
273277 // Get minimum VLen from march.
274278 unsigned MinVLen = 0 ;
Original file line number Diff line number Diff line change 1+ ! RUN: not %flang -c --target=riscv64-unknown-linux -mabi=ilp32 %s -### 2>&1 | FileCheck --check-prefix=INVALID1 %s
2+ ! RUN: not %flang -c --target=riscv64-unknown-linux -mabi=lp64e %s -### 2>&1 | FileCheck --check-prefix=INVALID2 %s
3+ ! RUN: %flang -c --target=riscv64-unknown-linux -mabi=lp64 %s -### 2>&1 | FileCheck --check-prefix=ABI1 %s
4+ ! RUN: %flang -c --target=riscv64-unknown-linux -mabi=lp64f %s -### 2>&1 | FileCheck --check-prefix=ABI2 %s
5+ ! RUN: %flang -c --target=riscv64-unknown-linux -mabi=lp64d %s -### 2>&1 | FileCheck --check-prefix=ABI3 %s
6+ ! RUN: %flang -c --target=riscv64-unknown-linux %s -### 2>&1 | FileCheck --check-prefix=ABI3 %s
7+
8+ ! INVALID1: error: unsupported argument 'ilp32' to option '-mabi='
9+ ! INVALID2: error: unsupported argument 'lp64e' to option '-mabi='
10+
11+ ! ABI1: "-mabi=lp64"
12+ ! ABI2: "-mabi=lp64f"
13+ ! ABI3: "-mabi=lp64d"
14+
Original file line number Diff line number Diff line change 1+ ! REQUIRES: riscv-registered-target
2+ ! RUN: %flang_fc1 -triple riscv64-none-linux-gnu -mabi=lp64 -emit-llvm -o - %s | FileCheck %s --check-prefix=LP64
3+ ! RUN: %flang_fc1 -triple riscv64-none-linux-gnu -mabi=lp64f -emit-llvm -o - %s | FileCheck %s --check-prefix=LP64F
4+ ! RUN: %flang_fc1 -triple riscv64-none-linux-gnu -mabi=lp64d -emit-llvm -o - %s | FileCheck %s --check-prefix=LP64D
5+
6+ ! LP64: !{{[0-9]+}} = !{i32 1, !"target-abi", !"lp64"}
7+ ! LP64F: !{{[0-9]+}} = !{i32 1, !"target-abi", !"lp64f"}
8+ ! LP64D: !{{[0-9]+}} = !{i32 1, !"target-abi", !"lp64d"}
9+ subroutine func
10+ end subroutine func
You can’t perform that action at this time.
0 commit comments