kito-cheng updated this revision to Diff 358314. kito-cheng added a comment.
Changes: - Add 2 testcases Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D105091/new/ https://reviews.llvm.org/D105091 Files: clang/lib/Driver/ToolChains/RISCVToolchain.cpp clang/test/Driver/riscv-args.c Index: clang/test/Driver/riscv-args.c =================================================================== --- clang/test/Driver/riscv-args.c +++ clang/test/Driver/riscv-args.c @@ -1,7 +1,21 @@ // Check the arguments are correctly passed // Make sure -T is the last with gcc-toolchain option -// RUN: %clang -### -target riscv32 \ -// RUN: --gcc-toolchain= -Xlinker --defsym=FOO=10 -T a.lds %s 2>&1 \ +// RUN: %clang -### -target riscv32 --gcc-toolchain= -Xlinker --defsym=FOO=10 -T a.lds %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK-LD %s // CHECK-LD: {{.*}} "--defsym=FOO=10" {{.*}} "-T" "a.lds" + +// Make sure -T is the last with gcc-toolchain option +// RUN: %clang -### -target riscv32 --gcc-toolchain= -T a.lds -Xlinker --defsym=FOO=10 %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK-LD-2 %s +// CHECK-LD-2: {{.*}} "--defsym=FOO=10" {{.*}} "-T" "a.lds" + +// Make sure -u has passed to linker +// RUN: %clang -### -target riscv32 --gcc-toolchain= -u foo %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK-U-LD %s +// CHECK-U-LD: {{.*}} "-u" "foo" + +// Make sure -T and -u is work as expect when pass together +// RUN: %clang -### -target riscv32 --gcc-toolchain= -Xlinker --defsym=FOO=10 -T a.lds -u foo %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK-U-T-LD %s +// CHECK-U-T-LD: {{.*}} "--defsym=FOO=10" {{.*}} "-u" "foo" {{.*}} "-T" "a.lds" Index: clang/lib/Driver/ToolChains/RISCVToolchain.cpp =================================================================== --- clang/lib/Driver/ToolChains/RISCVToolchain.cpp +++ clang/lib/Driver/ToolChains/RISCVToolchain.cpp @@ -184,6 +184,7 @@ AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA); Args.AddAllArgs(CmdArgs, options::OPT_L); + Args.AddAllArgs(CmdArgs, options::OPT_u); ToolChain.AddFilePathLibArgs(Args, CmdArgs); Args.AddAllArgs(CmdArgs, {options::OPT_T_Group, options::OPT_e, options::OPT_s,
Index: clang/test/Driver/riscv-args.c =================================================================== --- clang/test/Driver/riscv-args.c +++ clang/test/Driver/riscv-args.c @@ -1,7 +1,21 @@ // Check the arguments are correctly passed // Make sure -T is the last with gcc-toolchain option -// RUN: %clang -### -target riscv32 \ -// RUN: --gcc-toolchain= -Xlinker --defsym=FOO=10 -T a.lds %s 2>&1 \ +// RUN: %clang -### -target riscv32 --gcc-toolchain= -Xlinker --defsym=FOO=10 -T a.lds %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK-LD %s // CHECK-LD: {{.*}} "--defsym=FOO=10" {{.*}} "-T" "a.lds" + +// Make sure -T is the last with gcc-toolchain option +// RUN: %clang -### -target riscv32 --gcc-toolchain= -T a.lds -Xlinker --defsym=FOO=10 %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK-LD-2 %s +// CHECK-LD-2: {{.*}} "--defsym=FOO=10" {{.*}} "-T" "a.lds" + +// Make sure -u has passed to linker +// RUN: %clang -### -target riscv32 --gcc-toolchain= -u foo %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK-U-LD %s +// CHECK-U-LD: {{.*}} "-u" "foo" + +// Make sure -T and -u is work as expect when pass together +// RUN: %clang -### -target riscv32 --gcc-toolchain= -Xlinker --defsym=FOO=10 -T a.lds -u foo %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK-U-T-LD %s +// CHECK-U-T-LD: {{.*}} "--defsym=FOO=10" {{.*}} "-u" "foo" {{.*}} "-T" "a.lds" Index: clang/lib/Driver/ToolChains/RISCVToolchain.cpp =================================================================== --- clang/lib/Driver/ToolChains/RISCVToolchain.cpp +++ clang/lib/Driver/ToolChains/RISCVToolchain.cpp @@ -184,6 +184,7 @@ AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA); Args.AddAllArgs(CmdArgs, options::OPT_L); + Args.AddAllArgs(CmdArgs, options::OPT_u); ToolChain.AddFilePathLibArgs(Args, CmdArgs); Args.AddAllArgs(CmdArgs, {options::OPT_T_Group, options::OPT_e, options::OPT_s,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits