summaryrefslogtreecommitdiffstats
path: root/clang/include
diff options
context:
space:
mode:
authorDouglas Katzman <dougk@google.com>2016-10-14 19:55:09 +0000
committerDouglas Katzman <dougk@google.com>2016-10-14 19:55:09 +0000
commit3ed0f643fc3267b7fbb319e4cb5610e5a7e1ba86 (patch)
treec78c3e1d4ce390185d4059c55d78750d01cc1365 /clang/include
parentf80a27e3c6190a9aaec4454696cd4c162e3164e6 (diff)
downloadbcm5719-llvm-3ed0f643fc3267b7fbb319e4cb5610e5a7e1ba86.tar.gz
bcm5719-llvm-3ed0f643fc3267b7fbb319e4cb5610e5a7e1ba86.zip
Implement no_sanitize_address for global vars
llvm-svn: 284272
Diffstat (limited to 'clang/include')
-rw-r--r--clang/include/clang/Basic/Attr.td6
-rw-r--r--clang/include/clang/Basic/DiagnosticSemaKinds.td1
-rw-r--r--clang/include/clang/Sema/AttributeList.h1
3 files changed, 6 insertions, 2 deletions
diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td
index 1fea69ff0e2..2855207b4b6 100644
--- a/clang/include/clang/Basic/Attr.td
+++ b/clang/include/clang/Basic/Attr.td
@@ -1705,7 +1705,8 @@ def X86ForceAlignArgPointer : InheritableAttr, TargetSpecificAttr<TargetX86> {
def NoSanitize : InheritableAttr {
let Spellings = [GNU<"no_sanitize">, CXX11<"clang", "no_sanitize">];
let Args = [VariadicStringArgument<"Sanitizers">];
- let Subjects = SubjectList<[Function, ObjCMethod], ErrorDiag>;
+ let Subjects = SubjectList<[Function, ObjCMethod, GlobalVar], ErrorDiag,
+ "ExpectedFunctionMethodOrGlobalVar">;
let Documentation = [NoSanitizeDocs];
let AdditionalMembers = [{
SanitizerMask getMask() const {
@@ -1727,7 +1728,8 @@ def NoSanitizeSpecific : InheritableAttr {
GCC<"no_sanitize_address">,
GCC<"no_sanitize_thread">,
GNU<"no_sanitize_memory">];
- let Subjects = SubjectList<[Function], ErrorDiag>;
+ let Subjects = SubjectList<[Function, GlobalVar], ErrorDiag,
+ "ExpectedFunctionGlobalVarMethodOrProperty">;
let Documentation = [NoSanitizeAddressDocs, NoSanitizeThreadDocs,
NoSanitizeMemoryDocs];
let ASTNode = 0;
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td
index 872311f6024..b92ca3d34b9 100644
--- a/clang/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td
@@ -2577,6 +2577,7 @@ def warn_attribute_wrong_decl_type : Warning<
"|functions, methods and blocks"
"|functions, methods, and classes"
"|functions, methods, and parameters"
+ "|functions, methods, and global variables"
"|classes"
"|enums"
"|variables"
diff --git a/clang/include/clang/Sema/AttributeList.h b/clang/include/clang/Sema/AttributeList.h
index ff04f264964..96653ef8ea4 100644
--- a/clang/include/clang/Sema/AttributeList.h
+++ b/clang/include/clang/Sema/AttributeList.h
@@ -891,6 +891,7 @@ enum AttributeDeclKind {
ExpectedFunctionMethodOrBlock,
ExpectedFunctionMethodOrClass,
ExpectedFunctionMethodOrParameter,
+ ExpectedFunctionMethodOrGlobalVar,
ExpectedClass,
ExpectedEnum,
ExpectedVariable,
OpenPOWER on IntegriCloud