clang  3.9.0
Macros | Functions
LocalizationChecker.cpp File Reference
#include "ClangSACheckers.h"
#include "clang/AST/Attr.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclObjC.h"
#include "clang/StaticAnalyzer/Core/BugReporter/BugReporter.h"
#include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
#include "clang/StaticAnalyzer/Core/Checker.h"
#include "clang/StaticAnalyzer/Core/CheckerManager.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
#include "clang/Lex/Lexer.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/AST/StmtVisitor.h"
#include "llvm/Support/Unicode.h"
#include "llvm/ADT/StringSet.h"
Include dependency graph for LocalizationChecker.cpp:

Go to the source code of this file.

Macros

#define NEW_RECEIVER(receiver)
 
#define ADD_NULLARY_METHOD(receiver, method, argument)
 
#define ADD_UNARY_METHOD(receiver, method, argument)
 
#define ADD_METHOD(receiver, method_list, count, argument)   receiver##M.insert({Ctx.Selectors.getSelector(count, method_list), argument});
 
#define LSF_INSERT(function_name)   LSF.insert(&Ctx.Idents.get(function_name));
 
#define LSM_INSERT_NULLARY(receiver, method_name)
 
#define LSM_INSERT_UNARY(receiver, method_name)
 
#define LSM_INSERT_SELECTOR(receiver, method_list, arguments)
 

Functions

 REGISTER_MAP_WITH_PROGRAMSTATE (LocalizedMemMap, const MemRegion *, LocalizedState) NonLocalizedStringChecker
 
static bool isDebuggingName (std::string name)
 
static bool isDebuggingContext (CheckerContext &C)
 Returns true when, heuristically, the analyzer may be analyzing debugging code. More...
 
static bool isNSStringType (QualType T, ASTContext &Ctx)
 

Macro Definition Documentation

#define ADD_METHOD (   receiver,
  method_list,
  count,
  argument 
)    receiver##M.insert({Ctx.Selectors.getSelector(count, method_list), argument});

Definition at line 149 of file LocalizationChecker.cpp.

#define ADD_NULLARY_METHOD (   receiver,
  method,
  argument 
)
Value:
receiver##M.insert( \
{Ctx.Selectors.getNullarySelector(&Ctx.Idents.get(#method)), argument});

Definition at line 143 of file LocalizationChecker.cpp.

#define ADD_UNARY_METHOD (   receiver,
  method,
  argument 
)
Value:
receiver##M.insert( \
{Ctx.Selectors.getUnarySelector(&Ctx.Idents.get(#method)), argument});

Definition at line 146 of file LocalizationChecker.cpp.

#define LSF_INSERT (   function_name)    LSF.insert(&Ctx.Idents.get(function_name));

Definition at line 552 of file LocalizationChecker.cpp.

#define LSM_INSERT_NULLARY (   receiver,
  method_name 
)
Value:
LSM.insert({&Ctx.Idents.get(receiver), Ctx.Selectors.getNullarySelector( \
&Ctx.Idents.get(method_name))});

Definition at line 553 of file LocalizationChecker.cpp.

#define LSM_INSERT_SELECTOR (   receiver,
  method_list,
  arguments 
)
Value:
LSM.insert({&Ctx.Idents.get(receiver), \
Ctx.Selectors.getSelector(arguments, method_list)});

Definition at line 559 of file LocalizationChecker.cpp.

#define LSM_INSERT_UNARY (   receiver,
  method_name 
)
Value:
LSM.insert({&Ctx.Idents.get(receiver), \
Ctx.Selectors.getUnarySelector(&Ctx.Idents.get(method_name))});

Definition at line 556 of file LocalizationChecker.cpp.

#define NEW_RECEIVER (   receiver)
Value:
llvm::DenseMap<Selector, uint8_t> &receiver##M = \
UIMethods.insert({&Ctx.Idents.get(#receiver), \
llvm::DenseMap<Selector, uint8_t>()}) \
.first->second;

Definition at line 138 of file LocalizationChecker.cpp.

Function Documentation

static bool isDebuggingContext ( CheckerContext C)
static

Returns true when, heuristically, the analyzer may be analyzing debugging code.

We use this to suppress localization diagnostics in un-localized user interfaces that are only used for debugging and are therefore not user facing.

Definition at line 655 of file LocalizationChecker.cpp.

References clang::ento::CheckerContext::getCurrentAnalysisDeclContext(), clang::AnalysisDeclContext::getDecl(), and isDebuggingName().

static bool isDebuggingName ( std::string  name)
static

Definition at line 647 of file LocalizationChecker.cpp.

Referenced by isDebuggingContext().

static bool isNSStringType ( QualType  T,
ASTContext Ctx 
)
inlinestatic
REGISTER_MAP_WITH_PROGRAMSTATE ( LocalizedMemMap  ,
const MemRegion ,
LocalizedState   
)

Definition at line 106 of file LocalizationChecker.cpp.