diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-08-01 01:56:39 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-08-01 01:56:39 +0000 |
commit | 46bb581a03af0fb5710e37ce24ff09e596b94588 (patch) | |
tree | b3d20f5367bb4eb1307127ce591f2cab080c7cdc /clang/lib/CodeGen/CGClass.cpp | |
parent | 264da422b95a6c57abbee9cb5a600c4de68ebda8 (diff) | |
download | bcm5719-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.cpp | 4 |
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. |