https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101373
--- Comment #3 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > Eric, is it possible to write an equivalent testcase in Ada? procedure P is function Foo (J : Integer) return Integer; pragma Machine_Attribute (Foo, "const"); pragma Machine_Attribute (Foo, "noipa"); function Foo (J : Integer) return Integer is begin if J /= 0 then raise Constraint_Error; end if; return 0; end; function Bar (A : access Integer; N : Integer) return Integer; pragma Machine_Attribute (Bar, "noipa"); function Bar (A : access Integer; N : Integer) return Integer is Ret : Integer := 0; begin if N /= 0 then Ret := Foo (N); Ret := A.all; end if; Ret := Ret + A.all; return Ret; end; V : Integer; pragma Volatile (V); begin V := Bar (null, 1); exception when Constraint_Error => null; end; compiled with -O2 -gnatp, but I cannot have the load hoisted in this case.