https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119835

            Bug ID: 119835
           Summary: GCN, nvptx offloading: '
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, openmp
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tschwinge at gcc dot gnu.org
                CC: burnus at gcc dot gnu.org, jakub at gcc dot gnu.org
  Target Milestone: ---
            Target: GCN, nvptx

I noticed that when building the PR106445 'libgomp.c++/pr106445-1.C' with
(default '-O2' and) '-fno-inline' added, we ICE for both GCN, nvptx offloading
compilation:

    during GIMPLE pass: nrv
    [...]/build-gcc/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_vector.h:
In member function 'begin':
   
[...]/build-gcc/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_vector.h:1008:7:
internal compiler error: in execute, at tree-nrv.cc:179

That's 'gcc/tree-nrv.cc:pass_nrv::execute':

    174               /* In a function with an aggregate return value, the
    175                  gimplifier has changed all non-empty RETURN_EXPRs to
    176                  return the RESULT_DECL.  */
    177               ret_val = gimple_return_retval (return_stmt);
    178               if (ret_val)
    179                 gcc_assert (ret_val == result);

If I manually disable the pass, we're back to good.

Reply via email to