1 /*
2
3 Test that we can't set the initializer on a global twice.
4
5 */
6
7 #include <stdlib.h>
8 #include <stdio.h>
9
10 #include "libgccjit.h"
11 #include "harness.h"
12
13 void
14 create_code (gcc_jit_context *ctxt, void *user_data)
15 {
16 gcc_jit_type *int_type = gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_INT);
17
18 gcc_jit_lvalue *bar = gcc_jit_context_new_global (
19 ctxt, NULL,
20 GCC_JIT_GLOBAL_EXPORTED,
21 int_type,
22 "global_lvalueinit_int_0");
23
24 gcc_jit_global_set_initializer_rvalue (
25 bar,
26 gcc_jit_context_new_rvalue_from_int (ctxt, int_type, 1));
27 gcc_jit_global_set_initializer_rvalue (
28 bar,
29 gcc_jit_context_new_rvalue_from_int (ctxt, int_type, 1));
30 }
31
32 void
33 verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
34 {
35 /* Ensure that the bad API usage prevents the API giving a bogus
36 result back. */
37 CHECK_VALUE (result, NULL);
38
39 /* Verify that the correct error message was emitted. */
40 CHECK_STRING_VALUE (gcc_jit_context_get_first_error (ctxt),
41 "gcc_jit_global_set_initializer_rvalue: global variable "
42 "already initialized: global_lvalueinit_int_0");
43 CHECK_STRING_VALUE (gcc_jit_context_get_last_error (ctxt),
44 "gcc_jit_global_set_initializer_rvalue: global variable "
45 "already initialized: global_lvalueinit_int_0");
46 }