llvm-project/clang/lib/Sema
Richard Smith 588bd9b7f8 Fix representation of __attribute__((nonnull)) to support correctly modeling
the no-arguments case. Don't expand this to an __attribute__((nonnull(A, B,
C))) attribute, since that does the wrong thing for function templates and
varargs functions.

In passing, fix a grammar error in the diagnostic, a crash if
__attribute__((nonnull(N))) is applied to a varargs function,
a bug where the same null argument could be diagnosed multiple
times if there were multiple nonnull attributes referring to it,
and a bug where nonnull attributes would not be accumulated correctly
across redeclarations.

llvm-svn: 216520
2014-08-27 04:59:42 +00:00
..
AnalysisBasedWarnings.cpp Const-correctness, return-after-else, and formatting updates. NFC. 2014-08-15 12:38:17 +00:00
AttributeList.cpp Automate attribute argument count semantic checking when there are variadic or optional arguments present. With this, the only time you should have to manually check attribute argument counts is when HasCustomParsing is set to true, or when you have variadic arguments that aren't really variadic (like ownership_holds and friends). 2014-07-31 16:37:04 +00:00
CMakeLists.txt [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
CodeCompleteConsumer.cpp [C++11] Use 'nullptr'. Sema edition. 2014-05-26 06:22:03 +00:00
DeclSpec.cpp Move __vector long deprecation checking into DeclSpec::Finish 2014-08-24 04:50:19 +00:00
DelayedDiagnostic.cpp Objective-C. Diagnose when property access is using declared 2014-06-16 17:25:41 +00:00
IdentifierResolver.cpp [C++11] Use 'nullptr'. Sema edition. 2014-05-26 06:22:03 +00:00
JumpDiagnostics.cpp PR20356: Fix all Sema warnings with mismatched ext_/warn_ versus 2014-07-19 01:39:17 +00:00
Makefile
MultiplexExternalSemaSource.cpp [C++11] Use 'nullptr'. Sema edition. 2014-05-26 06:22:03 +00:00
Scope.cpp Revert r213437 2014-07-25 20:52:51 +00:00
ScopeInfo.cpp Objective-C ARC. Do not warn about properties with both 2014-06-17 23:35:13 +00:00
Sema.cpp Objective-C ARC. Use of non-retain/autorelease API 2014-08-08 17:31:14 +00:00
SemaAccess.cpp Consolidate some note diagnostics 2014-05-28 12:20:14 +00:00
SemaAttr.cpp -fms-extensions: Implement half of #pragma init_seg 2014-07-22 00:53:05 +00:00
SemaCXXScopeSpec.cpp Limit our MSVC compat hack for nested names from dependent bases 2014-08-14 23:34:52 +00:00
SemaCast.cpp PR20227: materialize a temporary when dynamic_casting a class prvalue to a 2014-07-08 17:25:14 +00:00
SemaChecking.cpp Fix representation of __attribute__((nonnull)) to support correctly modeling 2014-08-27 04:59:42 +00:00
SemaCodeComplete.cpp Switch over a few uses of param_begin() to parameters() 2014-07-07 09:02:20 +00:00
SemaConsumer.cpp
SemaDecl.cpp Clarify comment so this doesn't appear to be a C11-only rule. 2014-08-26 21:51:57 +00:00
SemaDeclAttr.cpp Fix representation of __attribute__((nonnull)) to support correctly modeling 2014-08-27 04:59:42 +00:00
SemaDeclCXX.cpp Passing a variable to std::move now counts as a use for -Wuninitialized 2014-08-26 04:30:55 +00:00
SemaDeclObjC.cpp Objective-C. Warn if user has made explicit call 2014-08-22 16:57:26 +00:00
SemaExceptionSpec.cpp [modules] Maintain an AST invariant across module load/save: if any declaration 2014-07-31 23:46:44 +00:00
SemaExpr.cpp Fix a bad location in -Wparentheses fix-it hint 2014-08-23 00:30:57 +00:00
SemaExprCXX.cpp C++1y is now C++14! 2014-08-19 15:55:55 +00:00
SemaExprMember.cpp Hide the concept of diagnostic levels from lex, parse and sema 2014-06-15 23:30:39 +00:00
SemaExprObjC.cpp Objective-C. Allow [super initialize] in an +initialize 2014-08-25 21:27:38 +00:00
SemaFixItUtils.cpp PR17290: Use 'false' macro in fix-it hint for initializing a variable of type 2013-09-20 00:27:40 +00:00
SemaInit.cpp CodeGen: Skip unnamed bitfields when handling designated initializers 2014-08-23 01:48:50 +00:00
SemaLambda.cpp C++1y is now C++14! 2014-08-19 15:55:55 +00:00
SemaLookup.cpp Factor out exception specification information from 2014-07-31 21:57:55 +00:00
SemaObjCProperty.cpp Repace SmallPtrSet with SmallPtrSetImpl in function arguments to avoid needing to mention the size. 2014-08-17 23:49:53 +00:00
SemaOpenMP.cpp [OPENMP] Improved DSA processing of the loop control variables for loop directives. 2014-07-25 06:27:47 +00:00
SemaOverload.cpp C++1y is now C++14! 2014-08-19 15:55:55 +00:00
SemaPseudoObject.cpp Fix crash when accessing a property of an invalid interface 2014-08-04 17:28:11 +00:00
SemaStmt.cpp C++1y is now C++14! 2014-08-19 15:55:55 +00:00
SemaStmtAsm.cpp [AArch64, inline-asm] Improve diagnostic that is printed when the size of a 2014-08-22 06:05:21 +00:00
SemaStmtAttr.cpp Add a state variable to the loop hint attribute. 2014-07-31 20:15:14 +00:00
SemaTemplate.cpp [modules] Put class template declarations into the scope in which they're 2014-08-23 00:49:01 +00:00
SemaTemplateDeduction.cpp C++1y is now C++14! 2014-08-19 15:55:55 +00:00
SemaTemplateInstantiate.cpp Wrap to 80 columns. No behavior change. 2014-07-28 00:02:09 +00:00
SemaTemplateInstantiateDecl.cpp [modules] Track the described template in an alias declaration that is the 2014-08-26 03:52:16 +00:00
SemaTemplateVariadic.cpp Reject varargs '...' in function prototype if there are more parameters after 2014-08-11 23:30:23 +00:00
SemaType.cpp C++1y is now C++14! 2014-08-19 15:55:55 +00:00
TreeTransform.h Return statements are initialization; don't forget to revert the initializer to 2014-08-21 20:51:13 +00:00
TypeLocBuilder.cpp [C++11] Use 'nullptr'. Sema edition. 2014-05-26 06:22:03 +00:00
TypeLocBuilder.h Header guard canonicalization, clang part. 2014-08-13 16:25:19 +00:00