]> git.ipfire.org Git - thirdparty/gcc.git/commit
PR jit/66783: prevent use of opaque structs
authordmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 7 Jul 2015 19:29:58 +0000 (19:29 +0000)
committerdmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 7 Jul 2015 19:29:58 +0000 (19:29 +0000)
commitd0278351a2f98b0b6b76531c342462a84d6d9c19
tree4e27cf9de6ad3f9acd2c9a0c0386dbab0e1f4e2e
parent9793d5a6489818bfcd667a216f148d90048f1940
PR jit/66783: prevent use of opaque structs

gcc/jit/ChangeLog:
PR jit/66783
* jit-recording.h: Within namespace gcc:jit::recording...
(type::has_known_size): New virtual function.
(struct_has_known_size): New function.
* libgccjit.c (gcc_jit_context_new_field): Verify that the type
has a known size.
(gcc_jit_context_new_global): Likewise.
(gcc_jit_function_new_local): Likewise.

gcc/testsuite/ChangeLog:
PR jit/66783
* jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c: New
test case.
* jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c:
New test case.
* jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c:
New test case.
* jit.dg/test-error-mismatching-types-in-call.c (create_code):
Avoid using an opaque struct for local "f".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225523 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/jit/ChangeLog
gcc/jit/jit-recording.h
gcc/jit/libgccjit.c
gcc/testsuite/ChangeLog
gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_field-opaque-struct.c [new file with mode: 0644]
gcc/testsuite/jit.dg/test-error-gcc_jit_context_new_global-opaque-struct.c [new file with mode: 0644]
gcc/testsuite/jit.dg/test-error-gcc_jit_function_new_local-opaque-struct.c [new file with mode: 0644]
gcc/testsuite/jit.dg/test-error-mismatching-types-in-call.c