diff options
author | David Majnemer <david.majnemer@gmail.com> | 2014-12-16 00:46:30 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2014-12-16 00:46:30 +0000 |
commit | e64941fa6001a06b03a7987d0ff541d17c59d10e (patch) | |
tree | 68f2968105289a62504cf0de11f513e38d681128 /clang/lib/Sema/SemaCast.cpp | |
parent | b58f003e866798c64be7868fc930f358e2e64819 (diff) | |
download | bcm5719-llvm-e64941fa6001a06b03a7987d0ff541d17c59d10e.tar.gz bcm5719-llvm-e64941fa6001a06b03a7987d0ff541d17c59d10e.zip |
Sema: Check value dependent casts when possible
We know that const_cast<char *>((void)Something) is ill-formed, even if
'Something' is dependent because you can't cast from void to a pointer
type.
This fixes PR21845.
llvm-svn: 224299
Diffstat (limited to 'clang/lib/Sema/SemaCast.cpp')
-rw-r--r-- | clang/lib/Sema/SemaCast.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaCast.cpp b/clang/lib/Sema/SemaCast.cpp index d38db87fa5c..a4c2d9b51c2 100644 --- a/clang/lib/Sema/SemaCast.cpp +++ b/clang/lib/Sema/SemaCast.cpp @@ -240,10 +240,8 @@ Sema::BuildCXXNamedCast(SourceLocation OpLoc, tok::TokenKind Kind, QualType DestType = DestTInfo->getType(); // If the type is dependent, we won't do the semantic analysis now. - // FIXME: should we check this in a more fine-grained manner? - bool TypeDependent = DestType->isDependentType() || - Ex.get()->isTypeDependent() || - Ex.get()->isValueDependent(); + bool TypeDependent = + DestType->isDependentType() || Ex.get()->isTypeDependent(); CastOperation Op(*this, DestType, E); Op.OpRange = SourceRange(OpLoc, Parens.getEnd()); |