diff options
author | David Majnemer <david.majnemer@gmail.com> | 2013-11-06 23:31:56 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2013-11-06 23:31:56 +0000 |
commit | bed356a9eae0d45b878410b5c42d6ff278bb0c83 (patch) | |
tree | 74bfb4f49e1a0d034c3c987b601da6255145959f /clang/lib/CodeGen/CGExpr.cpp | |
parent | 695c3325af3ef877c4632bb6ea5af04f2062ff1b (diff) | |
download | bcm5719-llvm-bed356a9eae0d45b878410b5c42d6ff278bb0c83.tar.gz bcm5719-llvm-bed356a9eae0d45b878410b5c42d6ff278bb0c83.zip |
[-fms-extensions] Add support for __FUNCDNAME__
Summary:
Similar to __FUNCTION__, MSVC exposes the name of the enclosing mangled
function name via __FUNCDNAME__. This implementation is very naive and
unoptimized, it is expected that __FUNCDNAME__ would be used rarely in
practice.
Reviewers: rnk, rsmith, thakis
CC: cfe-commits, silvas
Differential Revision: http://llvm-reviews.chandlerc.com/D2109
llvm-svn: 194181
Diffstat (limited to 'clang/lib/CodeGen/CGExpr.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGExpr.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index 4a427d540f6..96d6a019c24 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -1944,6 +1944,7 @@ LValue CodeGenFunction::EmitPredefinedLValue(const PredefinedExpr *E) { case PredefinedExpr::Func: case PredefinedExpr::Function: case PredefinedExpr::LFunction: + case PredefinedExpr::FuncDName: case PredefinedExpr::PrettyFunction: { PredefinedExpr::IdentType IdentType = E->getIdentType(); std::string GlobalVarName; @@ -1956,6 +1957,9 @@ LValue CodeGenFunction::EmitPredefinedLValue(const PredefinedExpr *E) { case PredefinedExpr::Function: GlobalVarName = "__FUNCTION__."; break; + case PredefinedExpr::FuncDName: + GlobalVarName = "__FUNCDNAME__."; + break; case PredefinedExpr::LFunction: GlobalVarName = "L__FUNCTION__."; break; |