Skip to content
Snippets Groups Projects
Commit d503073f authored by Aaron Ballman's avatar Aaron Ballman
Browse files

Updated the thread safety attribute definitions to have subjects defined....

Updated the thread safety attribute definitions to have subjects defined. These are based off what SemaDeclAttr.cpp is checking for in terms of diagnostic reporting. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195274 91177308-0d34-0410-b5e6-96231b3b80d8
parent 539110ff
No related branches found
No related tags found
No related merge requests found
......@@ -841,22 +841,27 @@ def NoSanitizeMemory : InheritableAttr {
def GuardedVar : InheritableAttr {
let Spellings = [GNU<"guarded_var">];
let Subjects = [Field, Var];
}
def PtGuardedVar : InheritableAttr {
let Spellings = [GNU<"pt_guarded_var">];
let Subjects = [Field, Var];
}
def Lockable : InheritableAttr {
let Spellings = [GNU<"lockable">];
let Subjects = [Record];
}
def ScopedLockable : InheritableAttr {
let Spellings = [GNU<"scoped_lockable">];
let Subjects = [Record];
}
def NoThreadSafetyAnalysis : InheritableAttr {
let Spellings = [GNU<"no_thread_safety_analysis">];
let Subjects = [Function, FunctionTemplate];
}
def GuardedBy : InheritableAttr {
......@@ -864,6 +869,7 @@ def GuardedBy : InheritableAttr {
let Args = [ExprArgument<"Arg">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Field, Var];
}
def PtGuardedBy : InheritableAttr {
......@@ -871,6 +877,7 @@ def PtGuardedBy : InheritableAttr {
let Args = [ExprArgument<"Arg">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Field, Var];
}
def AcquiredAfter : InheritableAttr {
......@@ -878,6 +885,7 @@ def AcquiredAfter : InheritableAttr {
let Args = [VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Field, Var];
}
def AcquiredBefore : InheritableAttr {
......@@ -885,6 +893,7 @@ def AcquiredBefore : InheritableAttr {
let Args = [VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Field, Var];
}
def ExclusiveLockFunction : InheritableAttr {
......@@ -892,6 +901,7 @@ def ExclusiveLockFunction : InheritableAttr {
let Args = [VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
def SharedLockFunction : InheritableAttr {
......@@ -899,6 +909,7 @@ def SharedLockFunction : InheritableAttr {
let Args = [VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
def AssertExclusiveLock : InheritableAttr {
......@@ -906,6 +917,7 @@ def AssertExclusiveLock : InheritableAttr {
let Args = [VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
def AssertSharedLock : InheritableAttr {
......@@ -913,6 +925,7 @@ def AssertSharedLock : InheritableAttr {
let Args = [VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
// The first argument is an integer or boolean value specifying the return value
......@@ -922,6 +935,7 @@ def ExclusiveTrylockFunction : InheritableAttr {
let Args = [ExprArgument<"SuccessValue">, VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
// The first argument is an integer or boolean value specifying the return value
......@@ -931,6 +945,7 @@ def SharedTrylockFunction : InheritableAttr {
let Args = [ExprArgument<"SuccessValue">, VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
def UnlockFunction : InheritableAttr {
......@@ -938,6 +953,7 @@ def UnlockFunction : InheritableAttr {
let Args = [VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
def LockReturned : InheritableAttr {
......@@ -945,6 +961,7 @@ def LockReturned : InheritableAttr {
let Args = [ExprArgument<"Arg">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
def LocksExcluded : InheritableAttr {
......@@ -952,6 +969,7 @@ def LocksExcluded : InheritableAttr {
let Args = [VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
def ExclusiveLocksRequired : InheritableAttr {
......@@ -959,6 +977,7 @@ def ExclusiveLocksRequired : InheritableAttr {
let Args = [VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
def SharedLocksRequired : InheritableAttr {
......@@ -966,6 +985,7 @@ def SharedLocksRequired : InheritableAttr {
let Args = [VariadicExprArgument<"Args">];
let LateParsed = 1;
let TemplateDependent = 1;
let Subjects = [Function, FunctionTemplate];
}
// C/C++ consumed attributes.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment