I'm writing bindings to XCB right now, and its mostly going smoothly. However I have encountered a very strange problem.

This bit of code segfaults with DMD:

    auto connection = xcb_connect(null, null);

    auto setup = xcb_get_setup(connection);
    auto iter = xcb_setup_roots_iterator(setup);

    auto screen = iter.data;

But it doesn't segfault with LDC2. This is odd to me because as far as I am aware LDC2 uses the same front end at DMD. This must mean that there is a bug in the dmd backend.

I thought it could be related to const optimizations, but I removed all the const declarations from the appropriate C bindings and the same thing happened.

I don't have the time to create a minimal test case for this, so I can't really file a bug report on it. I was also wondering what could cause this problem. I am using dmd 2.059 and the latest ldc from the arch repositories.

--
James Miller

Reply via email to