aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Basic/Attr.td
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Basic/Attr.td')
-rw-r--r--include/clang/Basic/Attr.td14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/clang/Basic/Attr.td b/include/clang/Basic/Attr.td
index 2b0ed3d669..fb3ba02575 100644
--- a/include/clang/Basic/Attr.td
+++ b/include/clang/Basic/Attr.td
@@ -55,6 +55,7 @@ class FunctionArgument<string name> : Argument<name>;
class TypeArgument<string name> : Argument<name>;
class UnsignedArgument<string name> : Argument<name>;
class VariadicUnsignedArgument<string name> : Argument<name>;
+class VariadicExprArgument<string name> : Argument<name>;
// A version of the form major.minor[.subminor].
class VersionArgument<string name> : Argument<name>;
@@ -564,52 +565,65 @@ def NoThreadSafetyAnalysis : InheritableAttr {
def GuardedBy : InheritableAttr {
let Spellings = ["guarded_by"];
+ let Args = [ExprArgument<"Arg">];
}
def PtGuardedBy : InheritableAttr {
let Spellings = ["pt_guarded_by"];
+ let Args = [ExprArgument<"Arg">];
}
def AcquiredAfter : InheritableAttr {
let Spellings = ["acquired_after"];
+ let Args = [VariadicExprArgument<"Args">];
}
def AcquiredBefore : InheritableAttr {
let Spellings = ["acquired_before"];
+ let Args = [VariadicExprArgument<"Args">];
}
def ExclusiveLockFunction : InheritableAttr {
let Spellings = ["exclusive_lock_function"];
+ let Args = [VariadicExprArgument<"Args">];
}
def SharedLockFunction : InheritableAttr {
let Spellings = ["shared_lock_function"];
+ let Args = [VariadicExprArgument<"Args">];
}
def ExclusiveTrylockFunction : InheritableAttr {
let Spellings = ["exclusive_trylock_function"];
+ let Args = [VariadicExprArgument<"Args">];
}
def SharedTrylockFunction : InheritableAttr {
let Spellings = ["shared_trylock_function"];
+ let Args = [VariadicExprArgument<"Args">];
}
def UnlockFunction : InheritableAttr {
let Spellings = ["unlock_function"];
+ let Args = [VariadicExprArgument<"Args">];
}
def LockReturned : InheritableAttr {
let Spellings = ["lock_returned"];
+ let Args = [ExprArgument<"Arg">];
}
def LocksExcluded : InheritableAttr {
let Spellings = ["locks_excluded"];
+ let Args = [VariadicExprArgument<"Args">];
}
def ExclusiveLocksRequired : InheritableAttr {
let Spellings = ["exclusive_locks_required"];
+ let Args = [VariadicExprArgument<"Args">];
}
def SharedLocksRequired : InheritableAttr {
let Spellings = ["shared_locks_required"];
+ let Args = [VariadicExprArgument<"Args">];
}