[Bug 151] New: Pragma without ';' results in undefined symbols
Chris Miller
chris at dprogramming.com
Wed May 24 09:58:09 PDT 2006
On Wed, 24 May 2006 12:31:15 -0400, Thomas Kuehne <thomas-dloop at kuehne.cn>
wrote:
> While
> "pragma(lib, "ws2_32.lib") class Blah{}" [A]
> is clearly illegal,
> "pragma(lib, "ws2_32.lib") class Blah{};" [B]
> is legal but buggy.
>
> http://www.dstress.com/d/pragma.html :
>> pragma(ident) declaration; // influence one declaration
>
Doesn't seem right, notice:
pragma(ident) // influence block of declarations
{ declaration;
declaration;
}
doesn't have ";" after the block. Anyway, the way you say wouldn't be
consistent with other things, like "extern(C) void foo() {}" doesn't need
";" after. Plus, would that extra ";" have any significance? seems like it
would only require extra work in the compiler to enforce. I think
"pragma(ident) declaration; // influence one declaration" should not
include the ";" and it was only typed in there by habit and/or to look
like valid code.
More information about the Digitalmars-d-bugs
mailing list