From 80d241427eebb72a9444ee3c2d2a6116f883bcbc Mon Sep 17 00:00:00 2001 From: Michael D Toguchi Date: Tue, 24 Sep 2019 17:45:22 -0700 Subject: [PATCH] [SYCL][Driver] allow for -g0 to override default setting with -fintelfpga When using -fintelfpga, -g is the default. Allow for the user to specify a -gN option on the command line to override. Signed-off-by: Michael D Toguchi --- clang/lib/Driver/Driver.cpp | 6 +++++- clang/test/Driver/sycl-offload-intelfpga.cpp | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 310d81e112574..0cb9a29c1e1c1 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -402,7 +402,11 @@ DerivedArgList *Driver::TranslateInputArgs(const InputArgList &Args) const { // Use of -fintelfpga implies -g and -MMD if (Args.hasArg(options::OPT_fintelfpga)) { DAL->AddFlagArg(0, Opts.getOption(options::OPT_MMD)); - DAL->AddFlagArg(0, Opts.getOption(options::OPT_g_Flag)); + // if any -gN option is provided, use that. + if (Arg *A = Args.getLastArg(options::OPT_gN_Group)) + DAL->append(A); + else + DAL->AddFlagArg(0, Opts.getOption(options::OPT_g_Flag)); } // Add a default value of -mlinker-version=, if one was given and the user diff --git a/clang/test/Driver/sycl-offload-intelfpga.cpp b/clang/test/Driver/sycl-offload-intelfpga.cpp index b92d7ad82065a..2e13defc34fed 100644 --- a/clang/test/Driver/sycl-offload-intelfpga.cpp +++ b/clang/test/Driver/sycl-offload-intelfpga.cpp @@ -9,6 +9,11 @@ // CHK-TOOLS-INTELFPGA: clang{{.*}} "-debug-info-kind=limited" {{.*}} "-dependency-file" // CHK-TOOLS-INTELFPGA: aoc{{.*}} "-dep-files={{.*}}" +/// -fintelfpga implies -g but -g0 should override +// RUN: %clang++ -### -target x86_64-unknown-linux-gnu -g0 -fsycl -fintelfpga %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHK-TOOLS-INTELFPGA-G0 %s +// CHK-TOOLS-INTELFPGA-G0-NOT: clang{{.*}} "-debug-info-kind=limited" + /// -fintelfpga -fsycl-link tests // RUN: touch %t.o // RUN: %clang++ -### -target x86_64-unknown-linux-gnu -fsycl -fintelfpga -fsycl-link %t.o 2>&1 \