NoQ added inline comments.
================
Comment at: clang/include/clang/Basic/Diagnostic.h:1040-1043
+ // An ordered sequence of "-Wunsafe-buffer-usage" opt-out regions in one
+ // translation unit. Each region is represented by a pair of start and end
+ // locations.
+ SmallVector<std::pair<SourceLocation, SourceLocation>, 8>
SafeBufferOptOutMap;
----------------
Ok, now I no longer see why this data should live in DiagnosticEngine. It's
mostly about analysis, right? The pragma simply makes our analysis produce
different results, regardless of whether these results are used for producing
diagnostics or something else. Maybe let's keep it all in Preprocessor?
================
Comment at: clang/lib/Analysis/UnsafeBufferUsage.cpp:543
#define GADGET(x)
\
- x ## Gadget::matcher().bind(#x),
+ allOf(x ## Gadget::matcher().bind(#x), notInSafeBufferOptOut()),
#include "clang/Analysis/Analyses/UnsafeBufferUsageGadgets.def"
----------------
This prevents safe fixable gadgets from being found in the opt-out zone. I
think this clause should only apply to warning gadgets.
================
Comment at: clang/lib/Analysis/UnsafeBufferUsage.cpp:551-555
+ allOf(declStmt().bind("any_ds"), notInSafeBufferOptOut())
+ // We match all DREs regardless of whether they are in safe-buffer
+ // opt-out region. Because an unclaimed DRE 'd', regardless of where
it is,
+ // should prevent a Fixable associated to the same variable as 'd'
+ // from being emitting.
----------------
I think we should match all DeclStmts as well, because otherwise we may be
unable to find the variable to fix.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D140179/new/
https://reviews.llvm.org/D140179
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits