summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaInit.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-04-26 07:35:03 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-04-26 07:35:03 +0000
commit9370dc2fdaa6147545c50262c940a5f067ad66c7 (patch)
tree4721c8e29148c5f4d1cc83b623793362f07a9683 /clang/lib/Sema/SemaInit.cpp
parentb64b8e16db40af8be3161da20f7b3bcb926fb098 (diff)
downloadbcm5719-llvm-9370dc2fdaa6147545c50262c940a5f067ad66c7.tar.gz
bcm5719-llvm-9370dc2fdaa6147545c50262c940a5f067ad66c7.zip
[Sema] Do not permit binding a reference to a compound literal
We could probably make this work if we cared enough. However, we are far outside any language rules at this point. This fixes PR21834. llvm-svn: 235818
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r--clang/lib/Sema/SemaInit.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index 3ee1a7f8ad4..eef9272cca1 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -3438,6 +3438,11 @@ static void TryReferenceListInitialization(Sema &S,
Sequence.SetFailed(InitializationSequence::FK_ReferenceBindingToInitList);
return;
}
+ // Can't reference initialize a compound literal.
+ if (Entity.getKind() == InitializedEntity::EK_CompoundLiteralInit) {
+ Sequence.SetFailed(InitializationSequence::FK_ReferenceBindingToInitList);
+ return;
+ }
QualType DestType = Entity.getType();
QualType cv1T1 = DestType->getAs<ReferenceType>()->getPointeeType();
OpenPOWER on IntegriCloud