Mercurial > projects > ddmd
diff dmd/SymOffExp.d @ 135:af1bebfd96a4 dmd2037
dmd 2.038
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Mon, 13 Sep 2010 22:19:42 +0100 |
parents | 60bb0fe4563e |
children | af724d3510d7 |
line wrap: on
line diff
--- a/dmd/SymOffExp.d Sat Sep 11 13:03:39 2010 +0100 +++ b/dmd/SymOffExp.d Mon Sep 13 22:19:42 2010 +0100 @@ -20,6 +20,7 @@ import dmd.ErrorExp; import dmd.TY; import dmd.TOK; +import dmd.STC; import dmd.backend.Symbol; import dmd.backend.Util; @@ -58,14 +59,14 @@ VarDeclaration v = var.isVarDeclaration(); if (v) { - if (!v.isDataseg()) + if (!v.isDataseg() && !(v.storage_class & (STC.STCref | STC.STCout))) { /* BUG: This should be allowed: * void foo() * { int a; * int* bar() { return &a; } * } */ - error("escaping reference to local variable %s", v.toChars()); + error("escaping reference to local %s", v.toChars()); } } }