Fixup for r220403: Use getFileLoc() instead of getSpellingLoc() in SanitizerBlacklist.
authorAlexey Samsonov <vonosmas@gmail.com>
Wed, 22 Oct 2014 19:34:25 +0000 (19:34 +0000)
committerAlexey Samsonov <vonosmas@gmail.com>
Wed, 22 Oct 2014 19:34:25 +0000 (19:34 +0000)
This also handles the case where function name (not its body)
is obtained from macro expansion.

llvm-svn: 220407

clang/lib/Basic/SanitizerBlacklist.cpp
clang/test/CodeGen/address-safety-attr.cpp

index c894129..ea5b8d0 100644 (file)
@@ -41,6 +41,6 @@ bool SanitizerBlacklist::isBlacklistedFile(StringRef FileName,
 bool SanitizerBlacklist::isBlacklistedLocation(SourceLocation Loc,
                                                StringRef Category) const {
   return !Loc.isInvalid() &&
-         isBlacklistedFile(SM.getFilename(SM.getSpellingLoc(Loc)), Category);
+         isBlacklistedFile(SM.getFilename(SM.getFileLoc(Loc)), Category);
 }
 
index 0d585c7..031d013 100644 (file)
@@ -66,13 +66,19 @@ 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)
 
+#define GENERATE_NAME(name) name##_generated
+// WITHOUT: Function_generated{{.*}}) [[NOATTR]]
+// BLFILE:  Function_generated{{.*}}) [[NOATTR]]
+// BLFUNC:  Function_generated{{.*}}) [[WITH]]
+// ASAN:    Function_generated{{.*}}) [[WITH]]
+int GENERATE_NAME(Function)(int *a) { return *a; }
+
 // WITHOUT:  TemplateAddressSafetyOk{{.*}}) [[NOATTR]]
 // BLFILE:  TemplateAddressSafetyOk{{.*}}) [[NOATTR]]
 // BLFUNC:  TemplateAddressSafetyOk{{.*}}) [[WITH]]