dmd/compiler/test/runnable/fix20466.d
2022-07-09 18:53:07 +02:00

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;
}