Feature #1579

Mark CkAbort [[noreturn]]

Added by Nils Deppe over 1 year ago. Updated 8 months ago.

Target version:
Start date:
Due date:
% Done:



Once C++11 is required ckExit should be marked [[noreturn]]


#1 Updated by Phil Miller over 1 year ago

  • Subject changed from Mark ckExit [[noreturn]] to Mark CkExit and CkAbort [[noreturn]]

#2 Updated by Eric Bohm about 1 year ago

  • Assignee set to Matthias Diener

#3 Updated by Matthias Diener 11 months ago

  • Status changed from New to In Progress

There is a WIP patch here:

This seems to work, but I'd like some feedback if this is the best way to do it.

#4 Updated by Matthias Diener 10 months ago

  • Status changed from In Progress to Implemented

Needs review.

#5 Updated by Sam White 9 months ago

The patch above has been updated to only mark CkAbort() as noreturn. We can't safely mark CkExit() as noreturn because when using MPI + Charm++ interoperation, CkExit does actually return. We could split the interop exit function from CkExit(), but that would just an obstacle to porting Charm++ code to interoperate with MPI.

#6 Updated by Sam White 9 months ago

  • Subject changed from Mark CkExit and CkAbort [[noreturn]] to Mark CkAbort [[noreturn]]
  • Status changed from Implemented to Merged

#7 Updated by Sam White 8 months ago

I'm seeing compiler warnings about this now:

In file included from machine.c:228:0:
machine-common-core.c: In function ‘CmiAbort’:
machine-common-core.c:1694:1: warning: ‘noreturn’ function does return
machine.c: In function ‘LrtsAbort’:
machine.c:562:1: warning: ‘noreturn’ function does return

Also available in: Atom PDF