[Bug fortran/103039] [12 Regression] Segfault with openmp block within a select type block since r12-1016-g0e3b3b77e13cac76
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Mar 9 14:27:49 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103039
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2022-03-09
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Keywords| |wrong-code
Priority|P3 |P1
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
in .ompexp I see
void MAIN__._omp_fn.0 (struct .omp_data_s.9 & restrict .omp_data_i)
{
...
<bb 6> :
s = 0;
D.4352 = .omp_data_i->__tmp_class_a;
__tmp_class_a.10 = __tmp_class_a;
D.4355 = D.4352->_vptr;
__tmp_class_a.10->_vptr = D.4355;
D.4356 = .omp_data_i->__tmp_class_a;
D.4357 = D.4356->_vptr;
D.4358 = D.4357->_size;
D.4359 = (unsigned long) D.4358;
__tmp_class_a.11 = __tmp_class_a;
D.4361 = __builtin_malloc (D.4359);
__tmp_class_a.11->_data = D.4361;
D.4362 = .omp_data_i->__tmp_class_a;
D.4363 = D.4362->_vptr;
D.4364 = D.4363->_copy;
__tmp_class_a.12 = __tmp_class_a;
D.4366 = .omp_data_i->__tmp_class_a;
D.4367 = D.4366->_data;
D.4364 (D.4367, __tmp_class_a.12);
so .omp_data_i->__tmp_class_a is accessed but then the local __tmp_class_a
is used in the end. So sth is amiss here.
I suspect the unshare_expr is playing havoc with some later lookups.
More information about the Gcc-bugs
mailing list