August 25, 2018
https://issues.dlang.org/show_bug.cgi?id=19191

          Issue ID: 19191
           Summary: Memory allocation failure with -profile=gc and dynamic
                    array of opaque handles
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: minor
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: goalitium@dissues.mail.kapsi.fi

Following minified code from a project using ErupteD Vulkan bindings crashes to "core.exception.OutOfMemoryError@src/core/exception.d(700): Memory allocation failed" when compiled with -profile=gc:

struct VkInstance_handle;
alias VkInstance = VkInstance_handle*;

void main()
{
    VkInstance[] instances = new VkInstance[1];
}


This can be worked around by changing the opaque handle declaration to: struct VkInstance_handle {};


The related issue in ErupteD GitHub: https://github.com/ParticlePeter/ErupteD/issues/11

--