/// identifier.
llvm::StringRef getName() const {
assert(getIdentifier() && "Name is not a simple identifier");
- return getIdentifier()->getNameStr();
+ return getIdentifier()->getName();
}
/// getNameAsCString - Get the name of identifier for this declaration as a
return (((unsigned) p[0]) | (((unsigned) p[1]) << 8)) - 1;
}
- // FIXME: Deprecated.
- const char *getName() const {
- return getNameStart();
- }
-
- /// getNameStr - Return the actual identifier string.
- llvm::StringRef getNameStr() const {
+ /// getName - Return the actual identifier string.
+ llvm::StringRef getName() const {
return llvm::StringRef(getNameStart(), getLength());
}
const IdentifierInfo *Name) {
llvm::SmallString<100> SelectorName;
SelectorName = "set";
- SelectorName += Name->getNameStr();
+ SelectorName += Name->getName();
SelectorName[3] = toupper(SelectorName[3]);
IdentifierInfo *SetterName =
&Idents.get(SelectorName.data(),
S += llvm::utostr(N);
}
+// FIXME: Use SmallString for accumulating string.
void ASTContext::getObjCEncodingForTypeImpl(QualType T, std::string& S,
bool ExpandPointedToStructures,
bool ExpandStructures,
bool operator<(DeclarationName LHS, DeclarationName RHS) {
if (IdentifierInfo *LhsId = LHS.getAsIdentifierInfo())
if (IdentifierInfo *RhsId = RHS.getAsIdentifierInfo())
- return LhsId->getNameStr() < RhsId->getNameStr();
+ return LhsId->getName() < RhsId->getName();
return LHS.getAsOpaqueInteger() < RHS.getAsOpaqueInteger();
}
bool ExtVectorElementExpr::containsDuplicateElements() const {
// FIXME: Refactor this code to an accessor on the AST node which returns the
// "type" of component access, and share with code below and in Sema.
- llvm::StringRef Comp = Accessor->getNameStr();
+ llvm::StringRef Comp = Accessor->getName();
// Halving swizzles do not contain duplicate elements.
if (Comp == "hi" || Comp == "lo" || Comp == "even" || Comp == "odd")
void TypedefType::getAsStringInternal(std::string &InnerString, const PrintingPolicy &Policy) const {
if (!InnerString.empty()) // Prefix the basic type, e.g. 'typedefname X'.
InnerString = ' ' + InnerString;
- InnerString = getDecl()->getIdentifier()->getNameStr().str() + InnerString;
+ InnerString = getDecl()->getIdentifier()->getName().str() + InnerString;
}
void TemplateTypeParmType::getAsStringInternal(std::string &InnerString, const PrintingPolicy &Policy) const {
InnerString = "type-parameter-" + llvm::utostr_32(Depth) + '-' +
llvm::utostr_32(Index) + InnerString;
else
- InnerString = Name->getNameStr().str() + InnerString;
+ InnerString = Name->getName().str() + InnerString;
}
void SubstTemplateTypeParmType::getAsStringInternal(std::string &InnerString, const PrintingPolicy &Policy) const {
TemplateArgs.getFlatArgumentList(),
TemplateArgs.flat_size(),
Policy);
- MyPart = Spec->getIdentifier()->getNameStr().str() + TemplateArgsStr;
+ MyPart = Spec->getIdentifier()->getName().str() + TemplateArgsStr;
} else if (TagDecl *Tag = dyn_cast<TagDecl>(DC)) {
if (TypedefDecl *Typedef = Tag->getTypedefForAnonDecl())
MyPart = Typedef->getIdentifier()->getName();
return false;
if (isNSString(ReceiverType,
- ReceiverType->getDecl()->getIdentifier()->getNameStr()))
+ ReceiverType->getDecl()->getIdentifier()->getName()))
return AuditNSString(N, ME);
return false;
// Recursively walk the typedef stack, allowing typedefs of reference types.
while (TypedefType* TD = dyn_cast<TypedefType>(RetTy.getTypePtr())) {
- llvm::StringRef TDName = TD->getDecl()->getIdentifier()->getNameStr();
+ llvm::StringRef TDName = TD->getDecl()->getIdentifier()->getName();
if (TDName.startswith(prefix) && TDName.endswith("Ref"))
return true;
if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
// Precondition: the first argument of 'main' is an integer guaranteed
// to be > 0.
- if (FD->getIdentifier()->getNameStr() == "main" &&
+ if (FD->getIdentifier()->getName() == "main" &&
FD->getNumParams() > 0) {
const ParmVarDecl *PD = FD->getParamDecl(0);
QualType T = PD->getType();
for (AnalysisDataTy::decl_iterator I = AD.begin_decl(),
E = AD.end_decl(); I!=E; ++I)
if (V.getDeclBit(I->second)) {
- llvm::errs() << " " << I->first->getIdentifier()->getNameStr() << " <";
+ llvm::errs() << " " << I->first->getIdentifier()->getName() << " <";
I->first->getLocation().dump(SM);
llvm::errs() << ">\n";
}
continue;
}
- llvm::raw_svector_ostream(OutStr) << '\'' << II->getNameStr() << '\'';
+ llvm::raw_svector_ostream(OutStr) << '\'' << II->getName() << '\'';
break;
}
case Diagnostic::ak_qualtype:
llvm::raw_svector_ostream OS(Str);
for (keyword_iterator I = keyword_begin(), E = keyword_end(); I != E; ++I) {
if (*I)
- OS << (*I)->getNameStr();
+ OS << (*I)->getName();
OS << ':';
}
// If the number of arguments is 0 then II is guaranteed to not be null.
if (getNumArgs() == 0)
- return II->getNameStr();
+ return II->getName();
if (!II)
return ":";
- return II->getNameStr().str() + ":";
+ return II->getName().str() + ":";
}
// We have a multiple keyword selector (no embedded flags).
llvm::raw_svector_ostream OS(Asm);
for (llvm::SetVector<IdentifierInfo*>::iterator I = LazySymbols.begin(),
e = LazySymbols.end(); I != e; ++I)
- OS << "\t.lazy_reference .objc_class_name_" << (*I)->getNameStr() << "\n";
+ OS << "\t.lazy_reference .objc_class_name_" << (*I)->getName() << "\n";
for (llvm::SetVector<IdentifierInfo*>::iterator I = DefinedSymbols.begin(),
e = DefinedSymbols.end(); I != e; ++I)
- OS << "\t.objc_class_name_" << (*I)->getNameStr() << "=0\n"
- << "\t.globl .objc_class_name_" << (*I)->getNameStr() << "\n";
+ OS << "\t.objc_class_name_" << (*I)->getName() << "=0\n"
+ << "\t.globl .objc_class_name_" << (*I)->getName() << "\n";
CGM.getModule().setModuleInlineAsm(OS.str());
}
llvm::GlobalValue::ExternalLinkage,
0,
("OBJC_EHTYPE_$_" +
- ID->getIdentifier()->getNameStr()));
+ ID->getIdentifier()->getName()));
}
// Otherwise we need to either make a new entry or fill in the
llvm::GlobalValue::WeakAnyLinkage,
Init,
("OBJC_EHTYPE_$_" +
- ID->getIdentifier()->getNameStr()));
+ ID->getIdentifier()->getName()));
}
if (CGM.getLangOptions().getVisibilityMode() == LangOptions::Hidden)
if (!isCharType(TemplateArgs[0].getAsType()))
return false;
- return SD->getIdentifier()->getNameStr() == Name;
+ return SD->getIdentifier()->getName() == Name;
}
bool CXXNameMangler::mangleStandardSubstitution(const NamedDecl *ND) {
case Decl::Function: {
FunctionDecl* FD = cast<FunctionDecl>(D);
- if (Opts.AnalyzeSpecificFunction.size() > 0 &&
+ if (!Opts.AnalyzeSpecificFunction.empty() &&
Opts.AnalyzeSpecificFunction != FD->getIdentifier()->getName())
break;
typedef data_type data_type_ref;
static unsigned ComputeHash(PTHIdKey* key) {
- return llvm::HashString(key->II->getNameStr());
+ return llvm::HashString(key->II->getName());
}
static std::pair<unsigned,unsigned>
}
if (IdentifierInfo *II = Tok.getIdentifierInfo()) {
- OS << II->getNameStr();
+ OS << II->getName();
} else if (Tok.isLiteral() && !Tok.needsCleaning() &&
Tok.getLiteralData()) {
OS.write(Tok.getLiteralData(), Tok.getLength());
struct SortMacrosByID {
typedef std::pair<IdentifierInfo*, MacroInfo*> id_macro_pair;
bool operator()(const id_macro_pair &LHS, const id_macro_pair &RHS) const {
- return LHS.first->getNameStr() < RHS.first->getNameStr();
+ return LHS.first->getName() < RHS.first->getName();
}
};
}
// comment the line out.
if (RawTokens[CurRawTok].is(tok::identifier)) {
const IdentifierInfo *II = RawTokens[CurRawTok].getIdentifierInfo();
- if (II->getNameStr() == "warning") {
+ if (II->getName() == "warning") {
// Comment out #warning.
RB.InsertTextAfter(SM.getFileOffset(RawTok.getLocation()), "//");
- } else if (II->getNameStr() == "pragma" &&
+ } else if (II->getName() == "pragma" &&
RawTokens[CurRawTok+1].is(tok::identifier) &&
- (RawTokens[CurRawTok+1].getIdentifierInfo()->getNameStr() ==
+ (RawTokens[CurRawTok+1].getIdentifierInfo()->getName() ==
"mark")) {
// Comment out #pragma mark.
RB.InsertTextAfter(SM.getFileOffset(RawTok.getLocation()), "//");
if (clsName) { // class message.
// FIXME: We need to fix Sema (and the AST for ObjCMessageExpr) to handle
// the 'super' idiom within a class method.
- if (clsName->getNameStr() == "super") {
+ if (clsName->getName() == "super") {
MsgSendFlavor = MsgSendSuperFunctionDecl;
if (MsgSendStretFlavor)
MsgSendStretFlavor = MsgSendSuperStretFunctionDecl;
}
AttributeList::Kind AttributeList::getKind(const IdentifierInfo *Name) {
- llvm::StringRef AttrName = Name->getNameStr();
+ llvm::StringRef AttrName = Name->getName();
// Normalize the attribute name, __foo__ becomes foo.
if (AttrName.startswith("__") && AttrName.endswith("__"))
const IdentifierInfo *FieldName = Tok.getIdentifierInfo();
llvm::SmallString<256> NewSyntax;
- llvm::raw_svector_ostream(NewSyntax) << '.' << FieldName->getNameStr()
+ llvm::raw_svector_ostream(NewSyntax) << '.' << FieldName->getName()
<< " = ";
SourceLocation NameLoc = ConsumeToken(); // Eat the identifier.
IdentifierInfo *II = Tok.getIdentifierInfo();
ConsumeToken();
- Names.push_back(II->getNameStr());
+ Names.push_back(II->getName());
MatchRHSPunctuation(tok::r_square, Loc);
} else
Names.push_back(std::string());
<< &II << DC << SS->getRange();
else if (isDependentScopeSpecifier(*SS)) {
Diag(SS->getRange().getBegin(), diag::err_typename_missing)
- << (NestedNameSpecifier *)SS->getScopeRep() << II.getName()
+ << (NestedNameSpecifier *)SS->getScopeRep() << II.getName()
<< SourceRange(SS->getRange().getBegin(), IILoc)
<< CodeModificationHint::CreateInsertion(SS->getRange().getBegin(),
"typename ");
if (FTI.ArgInfo[i].Param == 0) {
llvm::SmallString<256> Code;
llvm::raw_svector_ostream(Code) << " int "
- << FTI.ArgInfo[i].Ident->getNameStr()
+ << FTI.ArgInfo[i].Ident->getName()
<< ";\n";
Diag(FTI.ArgInfo[i].IdentLoc, diag::ext_param_not_declared)
<< FTI.ArgInfo[i].Ident
}
// Extension in C99. Legal in C90, but warn about it.
- if (II.getNameStr().startswith("__builtin_"))
+ if (II.getName().startswith("__builtin_"))
Diag(Loc, diag::warn_builtin_unknown) << &II;
else if (getLangOptions().C99)
Diag(Loc, diag::ext_implicit_function_decl) << &II;
unsigned NumArgs = getFunctionOrMethodNumArgs(d);
unsigned FirstIdx = 1;
- llvm::StringRef Format = Attr.getParameterName()->getNameStr();
+ llvm::StringRef Format = Attr.getParameterName()->getName();
// Normalize the argument, __foo__ becomes foo.
if (Format.startswith("__") && Format.endswith("__"))
FormatAttrKind Kind = getFormatAttrKind(Format);
if (Kind == InvalidFormat) {
S.Diag(Attr.getLoc(), diag::warn_attribute_type_not_supported)
- << "format" << Attr.getParameterName()->getNameStr();
+ << "format" << Attr.getParameterName()->getName();
return;
}
return;
}
- llvm::StringRef Str = Attr.getParameterName()->getNameStr();
+ llvm::StringRef Str = Attr.getParameterName()->getName();
// Normalize the attribute name, __foo__ becomes foo.
if (Str.startswith("__") && Str.endswith("__"))