summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGClass.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2014-08-01 01:56:39 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2014-08-01 01:56:39 +0000
commit46bb581a03af0fb5710e37ce24ff09e596b94588 (patch)
treeb3d20f5367bb4eb1307127ce591f2cab080c7cdc /clang/lib/CodeGen/CGClass.cpp
parent264da422b95a6c57abbee9cb5a600c4de68ebda8 (diff)
downloadbcm5719-llvm-46bb581a03af0fb5710e37ce24ff09e596b94588.tar.gz
bcm5719-llvm-46bb581a03af0fb5710e37ce24ff09e596b94588.zip
[modules] Remove IRGen special case for emitting implicit special members if
they're somehow missing a body. Looks like this was left behind when the loop was generalized, and it's not been problematic before because without modules, a used, implicit special member function declaration must be a definition. This was resulting in us trying to emit a constructor declaration rather than a definition, and producing a constructor missing its member initializers. llvm-svn: 214473
Diffstat (limited to 'clang/lib/CodeGen/CGClass.cpp')
-rw-r--r--clang/lib/CodeGen/CGClass.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGClass.cpp b/clang/lib/CodeGen/CGClass.cpp
index 9427de14d70..920a071d8c7 100644
--- a/clang/lib/CodeGen/CGClass.cpp
+++ b/clang/lib/CodeGen/CGClass.cpp
@@ -711,7 +711,9 @@ void CodeGenFunction::EmitConstructorBody(FunctionArgList &Args) {
return;
}
- Stmt *Body = Ctor->getBody();
+ const FunctionDecl *Definition = 0;
+ Stmt *Body = Ctor->getBody(Definition);
+ assert(Definition == Ctor && "emitting wrong constructor body");
// Enter the function-try-block before the constructor prologue if
// applicable.
OpenPOWER on IntegriCloud