diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-04-26 07:35:03 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-04-26 07:35:03 +0000 |
commit | 9370dc2fdaa6147545c50262c940a5f067ad66c7 (patch) | |
tree | 4721c8e29148c5f4d1cc83b623793362f07a9683 /clang/lib/Sema/SemaInit.cpp | |
parent | b64b8e16db40af8be3161da20f7b3bcb926fb098 (diff) | |
download | bcm5719-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.cpp | 5 |
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(); |