forked from OSchip/llvm-project
ec7d7f312e
Summary: Pick D42933 back up, and make NSInteger/NSUInteger with %zu/%zi specifiers on Darwin warn only in pedantic mode. The default -Wformat recently started warning for the following code because of the added support for analysis for the '%zi' specifier. NSInteger i = NSIntegerMax; NSLog(@"max NSInteger = %zi", i); The problem is that on armv7 %zi is 'long', and NSInteger is typedefed to 'int' in Foundation. We should avoid this warning as it's inconvenient to our users: it's target specific (happens only on armv7 and not arm64), and breaks their existing code. We should also silence the warning for the '%zu' specifier to ensure consistency. This is acceptable because Darwin guarantees that, despite the unfortunate choice of typedef, sizeof(size_t) == sizeof(NS[U]Integer), the warning is therefore noisy for pedantic reasons. Once this is in I'll update public documentation. Related discussion on cfe-dev: http://lists.llvm.org/pipermail/cfe-dev/2018-May/058050.html <rdar://36874921&40501559> Reviewers: ahatanak, vsapsai, alexshap, aaron.ballman, javed.absar, jfb, rjmccall Subscribers: kristof.beyls, aheejin, cfe-commits Differential Revision: https://reviews.llvm.org/D47290 llvm-svn: 335393 |
||
---|---|---|
.. | ||
AnalysisDeclContext.cpp | ||
BodyFarm.cpp | ||
CFG.cpp | ||
CFGReachabilityAnalysis.cpp | ||
CFGStmtMap.cpp | ||
CMakeLists.txt | ||
CallGraph.cpp | ||
CloneDetection.cpp | ||
CocoaConventions.cpp | ||
CodeInjector.cpp | ||
ConstructionContext.cpp | ||
Consumed.cpp | ||
Dominators.cpp | ||
FormatString.cpp | ||
FormatStringParsing.h | ||
LiveVariables.cpp | ||
OSLog.cpp | ||
ObjCNoReturn.cpp | ||
PostOrderCFGView.cpp | ||
PrintfFormatString.cpp | ||
ProgramPoint.cpp | ||
PseudoConstantAnalysis.cpp | ||
ReachableCode.cpp | ||
ScanfFormatString.cpp | ||
ThreadSafety.cpp | ||
ThreadSafetyCommon.cpp | ||
ThreadSafetyLogical.cpp | ||
ThreadSafetyTIL.cpp | ||
UninitializedValues.cpp |