Mercurial > projects > ldc
changeset 1392:336faed34424
Allow ignored pragmas to have a body; don't ignore the body.
Also, ignore errors while trying to make sense of parameters to ignored pragmas
for -v.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Sun, 17 May 2009 23:33:35 +0200 |
parents | 3af4ad55a004 |
children | 04177061f98d |
files | dmd/attrib.c |
diffstat | 1 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/dmd/attrib.c Sun May 17 23:15:04 2009 +0200 +++ b/dmd/attrib.c Sun May 17 23:33:35 2009 +0200 @@ -1012,6 +1012,10 @@ { for (size_t i = 0; i < args->dim; i++) { + // ignore errors in ignored pragmas. + global.gag++; + unsigned errors_save = global.errors; + Expression *e = (Expression *)args->data[i]; e = e->semantic(sc); e = e->optimize(WANTvalue | WANTinterpret); @@ -1020,13 +1024,16 @@ else printf(","); printf("%s", e->toChars()); + + // restore error state. + global.gag--; + global.errors = errors_save; } if (args->dim) printf(")"); } printf("\n"); } - goto Lnodecl; } else error("unrecognized pragma(%s)", ident->toChars());