You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a C11 generic routine encounters an unrecognized type, most routines call an empty function, shmem_ctx_c11_generic_selection_failed, but some do not. For example, shmem_put, shmem_iput, shmem_get, shmem_iget and non-blocking variants do not default to the empty function, but shmem_p, shmem_g, the AMOs (and more) do.
I presume this strategy prevents nasty compilation errors when encountering unrecognized types, but I'm not quite sure whether the inconsistencies mentioned above could be cleaned up or not.
This came up in PR #929 when we considered combining several checks on __STDC_VERSION__ into one inside a unit test.
The text was updated successfully, but these errors were encountered:
Your presumption is correct. We saw some pretty unintelligible compiler errors when the type was not recognized, and added shmem_ctx_c11_generic_selection_failed to give users a breadcrumb for the cause of the error. The compiler errors have gotten much better and it may now be fine to retire this function in favor of simplifying the C11 bindings.
When a C11 generic routine encounters an unrecognized type, most routines call an empty function,
shmem_ctx_c11_generic_selection_failed
, but some do not. For example,shmem_put
,shmem_iput
,shmem_get
,shmem_iget
and non-blocking variants do not default to the empty function, butshmem_p
,shmem_g
, the AMOs (and more) do.I presume this strategy prevents nasty compilation errors when encountering unrecognized types, but I'm not quite sure whether the inconsistencies mentioned above could be cleaned up or not.
This came up in PR #929 when we considered combining several checks on
__STDC_VERSION__
into one inside a unit test.The text was updated successfully, but these errors were encountered: