[stdlib] Start preparing the standard library for strict concurrency checking #71290
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch marks some global variables in the standard library as
nonisolated(unsafe)
where appropriate with some justification on why marking them that way is _ok_. I've also gone ahead and marked the empty singletons asconst
and the hashing parameters asconst
. C/C++ won't put just a regularconst
in some read only memory, so I forced these special variables in constant relocatable memory instead (because they have pointers to metadata) which will cause a bad access when trying to write to these symbols.With
-strict-concurrency=complete
, this cleans up most of the warnings we have in the standard library. The only other warning we get is withCommandLine.arguments
which I'm hoping we can revive this PR #69981 to deprecate and eventually move to a safer interface for this API.