(root)/
gcc-13.2.0/
gcc/
testsuite/
jit.dg/
test-error-global-already-init.c
       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  }