diff options
author | Chad Rosier <mcrosier@apple.com> | 2012-03-14 23:32:11 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2012-03-14 23:32:11 +0000 |
commit | 883b2579aa1677abdbae07341fc78a930e9ae88a (patch) | |
tree | 9a6cca2a3adad2d6bb1486f1250690349442373c /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | 01401cec0001a37790f7178ddc82364e59d96a90 (diff) | |
download | bcm5719-llvm-883b2579aa1677abdbae07341fc78a930e9ae88a.tar.gz bcm5719-llvm-883b2579aa1677abdbae07341fc78a930e9ae88a.zip |
[frontend] Add support for disabling the "inline" keyword using
-fno-inline-functions.
This behaves much like -fno-inline in gcc, but based on a discussion with
Daniel it was decided that -fno-inline-functions should subsume -fno-inline.
Please speak up if you object. The -fno-inline flag remains ignored.
Final part of rdar://10972766
llvm-svn: 152754
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index b80ceddbe37..06e90b66485 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -266,13 +266,14 @@ void CodeGenFunction::StartFunction(GlobalDecl GD, QualType RetTy, // Pass inline keyword to optimizer if it appears explicitly on any // declaration. - if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) - for (FunctionDecl::redecl_iterator RI = FD->redecls_begin(), - RE = FD->redecls_end(); RI != RE; ++RI) - if (RI->isInlineSpecified()) { - Fn->addFnAttr(llvm::Attribute::InlineHint); - break; - } + if (!CGM.getCodeGenOpts().NoInline) + if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) + for (FunctionDecl::redecl_iterator RI = FD->redecls_begin(), + RE = FD->redecls_end(); RI != RE; ++RI) + if (RI->isInlineSpecified()) { + Fn->addFnAttr(llvm::Attribute::InlineHint); + break; + } if (getContext().getLangOpts().OpenCL) { // Add metadata for a kernel function. |