Error: invalid compound literal type

Here is the signature I am trying to call:

	DrawBuffers              :: proc "c" (n: i32, bufs: [^]u32)    

This is how I try to call it, but the compiler compains:

	attachment: u32 = gl.COLOR_ATTACHMENT0
	buffs: [^]u32 = {&attachment}
	gl.DrawBuffers(1, buffs)

...
Error: Invalid compound literal type '[^]u32'
	buffs: [^]u32 = {&attachment}
	                ^~~~~~~~~~~~^

I don’t undestand why the declared type is invalid, but it is valid in the declared signature of gl.DrawBuffers ? How do I call it?

Remove the curly braces around &attachment .

1 Like