diff options
| author | Anders Carlsson <andersca@mac.com> | 2009-06-26 19:16:07 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2009-06-26 19:16:07 +0000 |
| commit | 364035d1a821ba70e38e3b5ccdc91dd1224316c6 (patch) | |
| tree | 91daa53dd86f92701d5684a4d8332c52ab5475a2 /clang/lib/Sema | |
| parent | 7f82a19fbf705ae2651888052f58eb1febcf270b (diff) | |
| download | bcm5719-llvm-364035d1a821ba70e38e3b5ccdc91dd1224316c6.tar.gz bcm5719-llvm-364035d1a821ba70e38e3b5ccdc91dd1224316c6.zip | |
An auto variable can't appear in its own initializer.
llvm-svn: 74312
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 3d223213865..2f843066547 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -627,6 +627,12 @@ Sema::OwningExprResult Sema::BuildDeclRefExpr(NamedDecl *D, QualType Ty, SourceLocation Loc, bool TypeDependent, bool ValueDependent, const CXXScopeSpec *SS) { + if (Context.getCanonicalType(Ty) == Context.UndeducedAutoTy) { + Diag(Loc, + diag::err_auto_variable_cannot_appear_in_own_initializer) + << D->getDeclName(); + return ExprError(); + } if (const VarDecl *VD = dyn_cast<VarDecl>(D)) { if (const CXXMethodDecl *MD = dyn_cast<CXXMethodDecl>(CurContext)) { |

