mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 13:10:12 +03:00
40 lines
700 B
D
40 lines
700 B
D
/* REQUIRED_ARGS: -O -fPIC
|
|
* DISABLED: win32 win64
|
|
*/
|
|
// https://issues.dlang.org/show_bug.cgi?id=20466
|
|
|
|
extern (C++) final class Parameter
|
|
{
|
|
ulong storageClass;
|
|
void* type;
|
|
}
|
|
|
|
extern (C++) final class IfStatement
|
|
{
|
|
Parameter prm;
|
|
}
|
|
|
|
extern (C++) final class Visitor
|
|
{
|
|
void visit(IfStatement s)
|
|
{
|
|
if (Parameter p = s.prm)
|
|
{
|
|
ulong stc = p.storageClass;
|
|
if (!p.type && !stc)
|
|
stc = 1L << 8;
|
|
assert(!(stc & (1L << 34)));
|
|
}
|
|
}
|
|
}
|
|
|
|
int main()
|
|
{
|
|
auto p = new Parameter;
|
|
p.storageClass = 1L << 2;
|
|
auto s = new IfStatement;
|
|
s.prm = p;
|
|
auto v = new Visitor;
|
|
v.visit(s);
|
|
return 0;
|
|
}
|