Implement code generation for __func__, __FUNCTION__ and __PRETTY_FUNCTION__
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40162 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/AST/StmtPrinter.cpp b/AST/StmtPrinter.cpp
index a3fff02..05d794c 100644
--- a/AST/StmtPrinter.cpp
+++ b/AST/StmtPrinter.cpp
@@ -291,6 +291,22 @@
OS << Node->getDecl()->getName();
}
+void StmtPrinter::VisitPreDefinedExpr(PreDefinedExpr *Node) {
+ switch (Node->getIdentType()) {
+ default:
+ assert(0 && "unknown case");
+ case PreDefinedExpr::Func:
+ OS << "__func__";
+ break;
+ case PreDefinedExpr::Function:
+ OS << "__FUNCTION__";
+ break;
+ case PreDefinedExpr::PrettyFunction:
+ OS << "__PRETTY_FUNCTION__";
+ break;
+ }
+}
+
void StmtPrinter::VisitCharacterLiteral(CharacterLiteral *Node) {
// FIXME should print an L for wchar_t constants
unsigned value = Node->getValue();