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

sandra at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sandra at gcc dot gnu.org

--- Comment #3 from sandra at gcc dot gnu.org ---
I've looked at this on mainline trunk and I'm not convinced there's a bug here,
or at least not a nios2 backend bug.

The -fdelete-null-pointer-checks option is badly named.  What it really does is
allow attempts to dereference a null pointer to be combined and/or replaced
with some other code sequence that also causes a trap.  So in the isolate-paths
tree pass, we're getting

  if (t_4(D) != 0B)
    goto <bb 3>; [100.00%]
  else
    goto <bb 7>; [0.00%]

  ....

   <bb 7> [count: 0]:
  # iftmp.0_8 = PHI <0B(2)>
  _9 ={v} iftmp.0_8->m_LL;
  __builtin_trap ();


The long long read is tagged as volatile to prevent it from getting optimized
away from later passes, and -mno-cache-volatile says to use the io instructions
for volatile memory reads and writes.

Reply via email to