diff options
| author | Aaron Ballman <aaron@aaronballman.com> | 2013-11-20 21:40:13 +0000 |
|---|---|---|
| committer | Aaron Ballman <aaron@aaronballman.com> | 2013-11-20 21:40:13 +0000 |
| commit | da9c089054f22d164bafb30af4a3ca07a2f890c6 (patch) | |
| tree | 0ac682865e9c6b2531672784aaf190175baa0f13 | |
| parent | fbb7634934d40548b650574a2f2a85ab41527674 (diff) | |
| download | bcm5719-llvm-da9c089054f22d164bafb30af4a3ca07a2f890c6.tar.gz bcm5719-llvm-da9c089054f22d164bafb30af4a3ca07a2f890c6.zip | |
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.
llvm-svn: 195274
| -rw-r--r-- | clang/include/clang/Basic/Attr.td | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td index a078f704594..4a412d1892e 100644 --- a/clang/include/clang/Basic/Attr.td +++ b/clang/include/clang/Basic/Attr.td @@ -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. |

