From 92badb4c8c6f603ff823d4aeb87c27582648ba6d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Mon, 24 Jan 2011 09:48:45 +0000 Subject: [PATCH] draw: Do not use LLVM's opaque types. Contrary what the name may suggest, LLVM's opaque types are used for recursive types -- types whose definition refers itself -- so opaque types correspond to pre-declaring a structure in C. E.g.: struct node; struct link { .... struct node *next; }; struct node { struct link link; } Void pointers are also disallowed by LLVM. So the suggested way of creating what's commonly referred as "opaque pointers" is using byte pointer (i.e., uint8_t * ). --- src/gallium/auxiliary/draw/draw_llvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 0c51aa8..a73bdd7 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.c +++ b/src/gallium/auxiliary/draw/draw_llvm.c @@ -220,7 +220,7 @@ create_jit_vertex_buffer_type(struct gallivm_state *gallivm) elem_types[0] = elem_types[1] = elem_types[2] = LLVMInt32TypeInContext(gallivm->context); - elem_types[3] = LLVMPointerType(LLVMOpaqueTypeInContext(gallivm->context), 0); /* vs_constants */ + elem_types[3] = LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 0); /* vs_constants */ vb_type = LLVMStructTypeInContext(gallivm->context, elem_types, Elements(elem_types), 0); -- 2.7.4