- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Considering the following code:
subroutine test_quiet(stat)
implicit none
integer :: stat
if (stat > 0) error stop 1, quiet=.true.
if (stat == 42) print *, 'unreachable'
end subroutine test_quietthat is compiled as follows:
ifx test.f90 -O3 -S the resulting code has `callq for_error_stop_quiet@PLT` that can be avoided since
If QUIET= appears and the scalar-logical-expr has the value true, no output of signaling exceptions or stop code shall be produced
from Fortran 2023 Standard (11.4 STOP and ERROR STOP statements)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That's correct. ERROR STOP always terminates execution - the difference between it and STOP (which also has QUIET=) is that ERROR STOP terminates all images in a coarray application.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hmm... There is no unreachable call after quiet stop (at IR level), while it should be.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry, I misread standard. Looks like it states that execution is still terminating, but in silent way (no output to IO).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That's correct. ERROR STOP always terminates execution - the difference between it and STOP (which also has QUIET=) is that ERROR STOP terminates all images in a coarray application.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page