aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-04-13 00:38:24 +0000
committerChris Lattner <sabre@nondot.org>2010-04-13 00:38:24 +0000
commitdc6040b357c49a4798784dbcdb36894c96e445bf (patch)
tree86db17bb160126e01503ed689d4cae033781b1a6 /clang/lib/Frontend/CompilerInvocation.cpp
parent08b0f66d2efe92aff5d61cef7b6ea7471853c0c6 (diff)
downloadllvm-dc6040b357c49a4798784dbcdb36894c96e445bf.zip
llvm-dc6040b357c49a4798784dbcdb36894c96e445bf.tar.gz
llvm-dc6040b357c49a4798784dbcdb36894c96e445bf.tar.bz2
add frontend support for -fdata-sections and -ffunction-sections,
patch by Sylvere Teissier! llvm-svn: 101108
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 17007b0..b5e5645 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -148,6 +148,10 @@ static void CodeGenOptsToArgs(const CodeGenOptions &Opts,
// VerifyModule is only derived.
// Inlining is only derived.
+ if (Opts.DataSections)
+ Res.push_back("-fdata-sections");
+ if (Opts.FunctionSections)
+ Res.push_back("-ffunction-sections");
if (Opts.AsmVerbose)
Res.push_back("-masm-verbose");
if (!Opts.CodeModel.empty()) {
@@ -803,6 +807,9 @@ static void ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args,
Opts.UnwindTables = Args.hasArg(OPT_munwind_tables);
Opts.RelocationModel = getLastArgValue(Args, OPT_mrelocation_model, "pic");
+ Opts.FunctionSections = Args.hasArg(OPT_ffunction_sections);
+ Opts.DataSections = Args.hasArg(OPT_fdata_sections);
+
Opts.MainFileName = getLastArgValue(Args, OPT_main_file_name);
Opts.VerifyModule = !Args.hasArg(OPT_disable_llvm_verifier);
}