diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-07-29 14:44:35 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-07-29 14:44:35 +0000 |
| commit | f65f490ae9874aaaaf2ab6b7d8daf3aec821d0a4 (patch) | |
| tree | a8925bc7d542877df7c8dfa9bb8b13f88aea7e81 /clang/lib | |
| parent | da2955ed744e1f753546f0a1d4d6b51931e63084 (diff) | |
| download | bcm5719-llvm-f65f490ae9874aaaaf2ab6b7d8daf3aec821d0a4.tar.gz bcm5719-llvm-f65f490ae9874aaaaf2ab6b7d8daf3aec821d0a4.zip | |
When deleting a value of class type, make sure that type is complete
before looking for conversions to pointer type. Fixes <rdar://problem/8248780>.
llvm-svn: 109749
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 0fe46ed607b..d9f7c13f3de 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -1360,6 +1360,10 @@ Sema::ActOnCXXDelete(SourceLocation StartLoc, bool UseGlobal, QualType Type = Ex->getType(); if (const RecordType *Record = Type->getAs<RecordType>()) { + if (RequireCompleteType(StartLoc, Type, + PDiag(diag::err_delete_incomplete_class_type))) + return ExprError(); + llvm::SmallVector<CXXConversionDecl*, 4> ObjectPtrConversions; CXXRecordDecl *RD = cast<CXXRecordDecl>(Record->getDecl()); |

