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