diff options
author | José Fonseca <jfonseca@vmware.com> | 2011-01-24 09:48:45 +0000 |
---|---|---|
committer | José Fonseca <jfonseca@vmware.com> | 2011-01-24 17:27:14 +0000 |
commit | 92badb4c8c6f603ff823d4aeb87c27582648ba6d (patch) | |
tree | 490ea1911cd5eb03af7fdc8260f7bf1f5b59d90d | |
parent | d14764815cdd2d92545a2d1127e2d1bf348aa035 (diff) |
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 * ).
-rw-r--r-- | src/gallium/auxiliary/draw/draw_llvm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c index 0c51aa85b3..a73bdd7808 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); |