llvm-project/clang/lib/Sema
JF Bastien 7f0a05ada5 Make atomic non-member functions as nonnull
Summary:
As a companion to libc++ patch https://reviews.llvm.org/D47225, mark builtin atomic non-member functions which accept pointers as nonnull.

The atomic non-member functions accept pointers to std::atomic / std::atomic_flag as well as to the non-atomic value. These are all dereferenced unconditionally when lowered, and therefore will fault if null. It's a tiny gotcha for new users, especially when they pass in NULL as expected value (instead of passing a pointer to a NULL value).

<rdar://problem/18473124>

Reviewers: arphaman

Subscribers: aheejin, cfe-commits

Differential Revision: https://reviews.llvm.org/D47229

llvm-svn: 333246
2018-05-25 00:07:09 +00:00
..
AnalysisBasedWarnings.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
AttributeList.cpp [Sema] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-02-20 02:16:28 +00:00
CMakeLists.txt Enabling the /bigobj flag for SemaDeclAttr.cpp. 2017-05-12 14:30:49 +00:00
CodeCompleteConsumer.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
CoroutineStmtBuilder.h Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
DeclSpec.cpp Track the result of evaluating a computed noexcept specification on the 2018-05-03 03:58:32 +00:00
DelayedDiagnostic.cpp [Sema] Make deprecation fix-it replace all multi-parameter ObjC method slots. 2018-03-29 17:34:09 +00:00
IdentifierResolver.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
JumpDiagnostics.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
MultiplexExternalSemaSource.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
Scope.cpp Fix Scope::dump() 2018-01-18 04:28:56 +00:00
ScopeInfo.cpp [coroutines] Pass coro func args to promise ctor 2018-01-24 22:15:42 +00:00
Sema.cpp [CUDA] Allow "extern __shared__ Foo foo[]" within anon. namespaces. 2018-05-17 16:15:07 +00:00
SemaAccess.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaAttr.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaCUDA.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaCXXScopeSpec.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaCast.cpp [OpenCL] Restrict various keywords in OpenCL C++ mode 2018-05-09 13:16:17 +00:00
SemaChecking.cpp Make atomic non-member functions as nonnull 2018-05-25 00:07:09 +00:00
SemaCodeComplete.cpp Switch a couple of users of LangOpts::GNUMode to the more appropriate LangOpts::GNUKeywords. 2018-05-24 21:51:52 +00:00
SemaConsumer.cpp
SemaCoroutine.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaDecl.cpp [Sema] Fix incorrect packed aligned structure layout 2018-05-21 14:28:43 +00:00
SemaDeclAttr.cpp Revert r332470 (and corresponding tests in r332492). 2018-05-18 20:18:17 +00:00
SemaDeclCXX.cpp Revert r332470 (and corresponding tests in r332492). 2018-05-18 20:18:17 +00:00
SemaDeclObjC.cpp Sema: diagnose invalid catch parameter in ObjC 2018-05-20 19:26:44 +00:00
SemaExceptionSpec.cpp Track the result of evaluating a computed noexcept specification on the 2018-05-03 03:58:32 +00:00
SemaExpr.cpp Remove the fixit for the diagnostics regarding capturing autoreleasing variables in a block 2018-05-14 20:29:16 +00:00
SemaExprCXX.cpp [OpenCL] Restrict various keywords in OpenCL C++ mode 2018-05-09 13:16:17 +00:00
SemaExprMember.cpp [Sema][ObjC] Do not DiagnoseUseOfDecl in LookupMemberExpr 2018-05-24 01:01:43 +00:00
SemaExprObjC.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaFixItUtils.cpp [Sema] Revert r329346 because of memory sanitizer failures. 2018-04-05 22:15:42 +00:00
SemaInit.cpp Use zeroinitializer for (trailing zero portion of) large array initializers 2018-05-23 23:41:38 +00:00
SemaLambda.cpp Revert r332470 (and corresponding tests in r332492). 2018-05-18 20:18:17 +00:00
SemaLookup.cpp Switch a couple of users of LangOpts::GNUMode to the more appropriate LangOpts::GNUKeywords. 2018-05-24 21:51:52 +00:00
SemaObjCProperty.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaOpenMP.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaOverload.cpp Allow dllimport non-type template arguments in C++17 2018-05-10 18:57:35 +00:00
SemaPseudoObject.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaStmt.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaStmtAsm.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaStmtAttr.cpp Now that C++17 is official (https://www.iso.org/standard/68564.html), start changing the C++1z terminology over to C++17. NFC intended, these are all mechanical changes. 2017-12-04 20:27:34 +00:00
SemaTemplate.cpp Fix __uuidof handling on non-type template parameter in C++17 2018-05-17 15:26:37 +00:00
SemaTemplateDeduction.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaTemplateInstantiate.cpp [Sema] Fix assertion when constructor is disabled with partially specialized template. 2018-05-16 18:28:58 +00:00
SemaTemplateInstantiateDecl.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaTemplateVariadic.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
SemaType.cpp [Modules] Do not diagnose missing import in recovery mode if there isn't a decl to lookup 2018-05-16 17:00:24 +00:00
TreeTransform.h Improve diagnostics and error recovery for template name lookup. 2018-05-11 02:43:08 +00:00
TypeLocBuilder.cpp [Sema] Fix bug in TypeLocBuilder::pushImpl 2016-02-18 21:05:09 +00:00
TypeLocBuilder.h Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00