From: Jonas Devlieghere Date: Tue, 19 Dec 2017 17:16:45 +0000 (+0000) Subject: [clang] -foptimization-record-file= should imply -fsave-optimization-record X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c0cdbb20fe24f48e22ae9ba0d0beee9a269ae313;p=clang [clang] -foptimization-record-file= should imply -fsave-optimization-record The Clang option -foptimization-record-file= controls which file an optimization record is output to. Optimization records are output if you use the Clang option -fsave-optimization-record. If you specify the first option without the second, you get a warning that the command line argument was unused. Passing -foptimization-record-file= should imply -fsave-optimization-record. This fixes PR33670 Patch by: Dmitry Venikov Differential revision: https://reviews.llvm.org/D39834 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@321090 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/ToolChains/Clang.cpp b/lib/Driver/ToolChains/Clang.cpp index 0a89ff96d3..7b3f4bc9d8 100644 --- a/lib/Driver/ToolChains/Clang.cpp +++ b/lib/Driver/ToolChains/Clang.cpp @@ -4389,6 +4389,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-fapple-pragma-pack"); if (Args.hasFlag(options::OPT_fsave_optimization_record, + options::OPT_foptimization_record_file_EQ, options::OPT_fno_save_optimization_record, false)) { CmdArgs.push_back("-opt-record-file"); diff --git a/test/Driver/opt-record.c b/test/Driver/opt-record.c index 5e8a28f5f8..7b4ec48632 100644 --- a/test/Driver/opt-record.c +++ b/test/Driver/opt-record.c @@ -9,6 +9,8 @@ // RUN: %clang -### -S -fsave-optimization-record -x cuda -nocudainc -nocudalib %s 2>&1 | FileCheck %s -check-prefix=CHECK-NO-O -check-prefix=CHECK-CUDA-DEV // RUN: %clang -### -fsave-optimization-record -x cuda -nocudainc -nocudalib %s 2>&1 | FileCheck %s -check-prefix=CHECK-NO-O -check-prefix=CHECK-CUDA-DEV // RUN: %clang -### -S -o FOO -fsave-optimization-record -foptimization-record-file=BAR.txt %s 2>&1 | FileCheck %s -check-prefix=CHECK-EQ +// RUN: %clang -### -S -o FOO -foptimization-record-file=BAR.txt %s 2>&1 | FileCheck %s -check-prefix=CHECK-EQ +// RUN: %clang -### -S -o FOO -foptimization-record-file=BAR.txt -fno-save-optimization-record %s 2>&1 | FileCheck %s --check-prefix=CHECK-FOPT-DISABLE // CHECK: "-cc1" // CHECK: "-opt-record-file" "FOO.opt.yaml" @@ -20,3 +22,4 @@ // CHECK-EQ: "-cc1" // CHECK-EQ: "-opt-record-file" "BAR.txt" +// CHECK-FOPT-DISABLE-NOT: "-fno-save-optimization-record"