summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Basic/SanitizerBlacklist.cpp3
-rw-r--r--clang/test/CodeGen/address-safety-attr.cpp9
2 files changed, 11 insertions, 1 deletions
diff --git a/clang/lib/Basic/SanitizerBlacklist.cpp b/clang/lib/Basic/SanitizerBlacklist.cpp
index 9b2cdfd4f5a..c894129e2a4 100644
--- a/clang/lib/Basic/SanitizerBlacklist.cpp
+++ b/clang/lib/Basic/SanitizerBlacklist.cpp
@@ -40,6 +40,7 @@ bool SanitizerBlacklist::isBlacklistedFile(StringRef FileName,
bool SanitizerBlacklist::isBlacklistedLocation(SourceLocation Loc,
StringRef Category) const {
- return !Loc.isInvalid() && isBlacklistedFile(SM.getFilename(Loc), Category);
+ return !Loc.isInvalid() &&
+ isBlacklistedFile(SM.getFilename(SM.getSpellingLoc(Loc)), Category);
}
diff --git a/clang/test/CodeGen/address-safety-attr.cpp b/clang/test/CodeGen/address-safety-attr.cpp
index ee368f11ebd..0d585c74495 100644
--- a/clang/test/CodeGen/address-safety-attr.cpp
+++ b/clang/test/CodeGen/address-safety-attr.cpp
@@ -64,6 +64,15 @@ int AddressSafetyOk(int *a) { return *a; }
// ASAN: BlacklistedFunction{{.*}}) [[WITH]]
int BlacklistedFunction(int *a) { return *a; }
+#define GENERATE_FUNC(name) \
+ int name(int *a) { return *a; }
+
+// WITHOUT: GeneratedFunction{{.*}}) [[NOATTR]]
+// BLFILE: GeneratedFunction{{.*}}) [[NOATTR]]
+// BLFUNC: GeneratedFunction{{.*}}) [[WITH]]
+// ASAN: GeneratedFunction{{.*}}) [[WITH]]
+GENERATE_FUNC(GeneratedFunction)
+
// WITHOUT: TemplateAddressSafetyOk{{.*}}) [[NOATTR]]
// BLFILE: TemplateAddressSafetyOk{{.*}}) [[NOATTR]]
// BLFUNC: TemplateAddressSafetyOk{{.*}}) [[WITH]]
OpenPOWER on IntegriCloud