openmp, fortran: Fix up IFN_ASSUME call
authorJakub Jelinek <jakub@redhat.com>
Mon, 10 Oct 2022 07:34:35 +0000 (09:34 +0200)
committerJakub Jelinek <jakub@redhat.com>
Mon, 10 Oct 2022 07:38:05 +0000 (09:38 +0200)
commit70f66a47fdf7d5f3837e475175b622abb5b985ad
tree2f9a5e2161981505d4469183e88fc3dc1e8caa3b
parent59d27853f10fdefa32779d74056fb7d16a6bb965
openmp, fortran: Fix up IFN_ASSUME call

Like in other spots in trans-openmp.cc that create a TARGET_EXPR, the
slot has to be created with create_tmp_var_raw, because gfc_create_var
adds the var to BLOCK_VARS and that ICEs during expansion because
gimple_add_tmp_var_fn has:
  gcc_assert (!DECL_CHAIN (tmp) && !DECL_SEEN_IN_BIND_EXPR_P (tmp));
assertion.  Also, both C/C++ ensure the argument to IFN_ASSUME has
boolean_type_node, it is easier if Fortran does that too.

2022-10-10  Jakub Jelinek  <jakub@redhat.com>

* trans-openmp.cc (gfc_trans_omp_assume): Use create_tmp_var_raw
instead of gfc_create_var for TARGET_EXPR slot creation.  Create it
with boolean_type_node and convert.
gcc/fortran/trans-openmp.cc