Don't treat a non-deduced 'auto' type as being type-dependent. Instead, there

are now two distinct canonical 'AutoType's: one is the undeduced 'auto'
placeholder type, and the other is a deduced-but-dependent type. All
deduced-to-a-non-dependent-type cases are still non-canonical.

llvm-svn: 180789
This commit is contained in:
Richard Smith
2013-04-30 13:56:41 +00:00
parent 93b2cba03b
commit 27d807cc9c
24 changed files with 206 additions and 137 deletions

View File

@@ -91,6 +91,9 @@ TypeEvaluationKind CodeGenFunction::getEvaluationKind(QualType type) {
#include "clang/AST/TypeNodes.def"
llvm_unreachable("non-canonical or dependent type in IR-generation");
case Type::Auto:
llvm_unreachable("undeduced auto type in IR-generation");
// Various scalar types.
case Type::Builtin:
case Type::Pointer: