From 07bab73c7f0a8dc8477c69d8b744b98610dd9304 Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Thu, 13 Dec 2012 01:43:21 +0000 Subject: Using CanQualType::getAs is unsafe; fix the code currently using it, and make sure additional uses don't get introduced. . llvm-svn: 170081 --- clang/lib/Sema/SemaDecl.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'clang/lib/Sema/SemaDecl.cpp') diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 10e871a630d..b4f77988bd6 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -2456,19 +2456,17 @@ void Sema::MergeVarDeclTypes(VarDecl *New, VarDecl *Old) { // absence of a major array bound (8.3.4). else if (Old->getType()->isIncompleteArrayType() && New->getType()->isArrayType()) { - CanQual OldArray - = Context.getCanonicalType(Old->getType())->getAs(); - CanQual NewArray - = Context.getCanonicalType(New->getType())->getAs(); - if (OldArray->getElementType() == NewArray->getElementType()) + const ArrayType *OldArray = Context.getAsArrayType(Old->getType()); + const ArrayType *NewArray = Context.getAsArrayType(New->getType()); + if (Context.hasSameType(OldArray->getElementType(), + NewArray->getElementType())) MergedT = New->getType(); } else if (Old->getType()->isArrayType() && New->getType()->isIncompleteArrayType()) { - CanQual OldArray - = Context.getCanonicalType(Old->getType())->getAs(); - CanQual NewArray - = Context.getCanonicalType(New->getType())->getAs(); - if (OldArray->getElementType() == NewArray->getElementType()) + const ArrayType *OldArray = Context.getAsArrayType(Old->getType()); + const ArrayType *NewArray = Context.getAsArrayType(New->getType()); + if (Context.hasSameType(OldArray->getElementType(), + NewArray->getElementType())) MergedT = Old->getType(); } else if (New->getType()->isObjCObjectPointerType() && Old->getType()->isObjCObjectPointerType()) { -- cgit v1.2.3