diff options
| author | Sam Weinig <sam.weinig@gmail.com> | 2009-12-06 23:55:13 +0000 |
|---|---|---|
| committer | Sam Weinig <sam.weinig@gmail.com> | 2009-12-06 23:55:13 +0000 |
| commit | d060ed4d707637f6ec815c9764562699c1943ad5 (patch) | |
| tree | 044897c66c48f702445a0e22b9ababbd165544bb /clang | |
| parent | 75dfed4fa5c1399778a0db1b4488c407b7d69dba (diff) | |
| download | bcm5719-llvm-d060ed4d707637f6ec815c9764562699c1943ad5.tar.gz bcm5719-llvm-d060ed4d707637f6ec815c9764562699c1943ad5.zip | |
Don't print a void return type for C++ constructors and destructors when generating a predefined expr for them.
llvm-svn: 90725
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/AST/Expr.cpp | 3 | ||||
| -rw-r--r-- | clang/test/CodeGenCXX/predefined-expr.cpp | 8 |
2 files changed, 6 insertions, 5 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index c5fb98dbcb6..db7d94dba65 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -203,7 +203,8 @@ std::string PredefinedExpr::ComputeName(ASTContext &Context, IdentType IT, } Proto += ")"; - AFT->getResultType().getAsStringInternal(Proto, Policy); + if (!isa<CXXConstructorDecl>(FD) && !isa<CXXDestructorDecl>(FD)) + AFT->getResultType().getAsStringInternal(Proto, Policy); Out << Proto; diff --git a/clang/test/CodeGenCXX/predefined-expr.cpp b/clang/test/CodeGenCXX/predefined-expr.cpp index 95bc255bdde..45b4e9f5402 100644 --- a/clang/test/CodeGenCXX/predefined-expr.cpp +++ b/clang/test/CodeGenCXX/predefined-expr.cpp @@ -12,12 +12,12 @@ // CHECK: private constant [38 x i8] c"void NS::Base::functionTemplate1(int)\00" // CHECK: private constant [12 x i8] c"~Destructor\00" -// CHECK: private constant [35 x i8] c"void NS::Destructor::~Destructor()\00" +// CHECK: private constant [30 x i8] c"NS::Destructor::~Destructor()\00" // CHECK: private constant [12 x i8] c"Constructor\00" -// CHECK: private constant [46 x i8] c"void NS::Constructor::Constructor(NS::Base *)\00" -// CHECK: private constant [39 x i8] c"void NS::Constructor::Constructor(int)\00" -// CHECK: private constant [36 x i8] c"void NS::Constructor::Constructor()\00" +// CHECK: private constant [41 x i8] c"NS::Constructor::Constructor(NS::Base *)\00" +// CHECK: private constant [34 x i8] c"NS::Constructor::Constructor(int)\00" +// CHECK: private constant [31 x i8] c"NS::Constructor::Constructor()\00" // CHECK: private constant [16 x i8] c"virtualFunction\00" // CHECK: private constant [44 x i8] c"virtual void NS::Derived::virtualFunction()\00" |

