/// \brief Thread Safety Analysis: Checks that the passed in RecordType
/// resolves to a lockable object. May flag an error.
-bool checkForLockableRecord(Sema &S, Decl *D, const AttributeList &Attr,
- const RecordType *RT) {
+static bool checkForLockableRecord(Sema &S, Decl *D, const AttributeList &Attr,
+ const RecordType *RT) {
// Flag error if could not get record type for this argument.
- if(!RT) {
+ if (!RT) {
S.Diag(Attr.getLoc(), diag::err_attribute_argument_not_class)
<< Attr.getName();
return false;
}
// Flag error if the type is not lockable.
- if(!RT->getDecl()->getAttr<LockableAttr>()) {
+ if (!RT->getDecl()->getAttr<LockableAttr>()) {
S.Diag(Attr.getLoc(), diag::err_attribute_argument_not_lockable)
<< Attr.getName();
return false;
if (!checkArithmeticOpPointerOperand(*this, Loc, PExp))
return QualType();
- QualType PointeeTy = PExp->getType()->getPointeeType();
-
// Diagnose bad cases where we step over interface counts.
if (!checkArithmethicPointerOnNonFragileABI(*this, Loc, PExp))
return QualType();
/// If two different enums are compared, raise a warning.
static void checkEnumComparison(Sema &S, SourceLocation Loc, ExprResult &lex,
ExprResult &rex) {
- QualType lType = lex.get()->getType();
- QualType rType = rex.get()->getType();
QualType LHSStrippedType = lex.get()->IgnoreParenImpCasts()->getType();
QualType RHSStrippedType = rex.get()->IgnoreParenImpCasts()->getType();
Out << '}';
}
-bool UsesAutorelease(const ProgramState *state) {
+static bool UsesAutorelease(const ProgramState *state) {
// A state uses autorelease if it allocated an autorelease pool or if it has
// objects in the caller's autorelease pool.
return !state->get<AutoreleaseStack>().isEmpty() ||