Index: cfe/trunk/lib/Driver/ToolChain.cpp =================================================================== --- cfe/trunk/lib/Driver/ToolChain.cpp +++ cfe/trunk/lib/Driver/ToolChain.cpp @@ -516,7 +516,6 @@ if (!needsProfileRT(Args)) return; CmdArgs.push_back(getCompilerRTArgString(Args, "profile")); - return; } ToolChain::RuntimeLibType ToolChain::GetRuntimeLibType( Index: cfe/trunk/lib/Driver/ToolChains.cpp =================================================================== --- cfe/trunk/lib/Driver/ToolChains.cpp +++ cfe/trunk/lib/Driver/ToolChains.cpp @@ -382,7 +382,6 @@ } AddLinkRuntimeLib(Args, CmdArgs, Library, /*AlwaysLink*/ true); - return; } void DarwinClang::AddLinkSanitizerLibArgs(const ArgList &Args, @@ -771,7 +770,6 @@ void DarwinClang::AddCCKextLibArgs(const ArgList &Args, ArgStringList &CmdArgs) const { - // For Darwin platforms, use the compiler-rt-based support library // instead of the gcc-provided one (which is also incidentally // only present in the gcc lib dir, which makes it hard to find). @@ -2451,7 +2449,6 @@ return true; } - void Generic_ELF::addClangTargetOptions(const ArgList &DriverArgs, ArgStringList &CC1Args) const { const Generic_GCC::GCCVersion &V = GCCInstallation.getVersion(); @@ -2610,7 +2607,6 @@ return InstallRelDir; } - Optional HexagonToolChain::getSmallDataThreshold( const ArgList &Args) { StringRef Gn = ""; @@ -2629,7 +2625,6 @@ return None; } - void HexagonToolChain::getHexagonLibraryPaths(const ArgList &Args, ToolChain::path_list &LibPaths) const { const Driver &D = getDriver(); @@ -3179,7 +3174,6 @@ NetBSD::NetBSD(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) : Generic_ELF(D, Triple, Args) { - if (getDriver().UseStdLib) { // When targeting a 32-bit platform, try the special directory used on // 64-bit hosts, and only fall back to the main library directory if that @@ -4037,7 +4031,6 @@ addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include"); } - static std::string DetectLibcxxIncludePath(StringRef base) { std::error_code EC; int MaxVersion = 0; Index: cfe/trunk/lib/Driver/Types.cpp =================================================================== --- cfe/trunk/lib/Driver/Types.cpp +++ cfe/trunk/lib/Driver/Types.cpp @@ -241,7 +241,6 @@ } assert(0 < P.size() && "Not enough phases in list"); assert(P.size() <= phases::MaxNumberOfPhases && "Too many phases in list"); - return; } ID types::lookupCXXTypeForCType(ID Id) { Index: cfe/trunk/lib/Index/USRGeneration.cpp =================================================================== --- cfe/trunk/lib/Index/USRGeneration.cpp +++ cfe/trunk/lib/Index/USRGeneration.cpp @@ -90,18 +90,23 @@ void VisitVarDecl(const VarDecl *D); void VisitNonTypeTemplateParmDecl(const NonTypeTemplateParmDecl *D); void VisitTemplateTemplateParmDecl(const TemplateTemplateParmDecl *D); + void VisitLinkageSpecDecl(const LinkageSpecDecl *D) { IgnoreResults = true; } + void VisitUsingDirectiveDecl(const UsingDirectiveDecl *D) { IgnoreResults = true; } + void VisitUsingDecl(const UsingDecl *D) { IgnoreResults = true; } + void VisitUnresolvedUsingValueDecl(const UnresolvedUsingValueDecl *D) { IgnoreResults = true; } + void VisitUnresolvedUsingTypenameDecl(const UnresolvedUsingTypenameDecl *D) { IgnoreResults = true; } @@ -126,14 +131,17 @@ void GenObjCClass(StringRef cls) { generateUSRForObjCClass(cls, Out); } + /// Generate a USR for an Objective-C class category. void GenObjCCategory(StringRef cls, StringRef cat) { generateUSRForObjCCategory(cls, cat, Out); } + /// Generate a USR fragment for an Objective-C property. void GenObjCProperty(StringRef prop) { generateUSRForObjCProperty(prop, Out); } + /// Generate a USR for an Objective-C protocol. void GenObjCProtocol(StringRef prot) { generateUSRForObjCProtocol(prot, Out); @@ -148,7 +156,6 @@ /// the decl had no name. bool EmitDeclName(const NamedDecl *D); }; - } // end anonymous namespace //===----------------------------------------------------------------------===// @@ -287,13 +294,11 @@ void USRGenerator::VisitNonTypeTemplateParmDecl( const NonTypeTemplateParmDecl *D) { GenLoc(D, /*IncludeOffset=*/true); - return; } void USRGenerator::VisitTemplateTemplateParmDecl( const TemplateTemplateParmDecl *D) { GenLoc(D, /*IncludeOffset=*/true); - return; } void USRGenerator::VisitNamespaceDecl(const NamespaceDecl *D) { @@ -500,7 +505,6 @@ void USRGenerator::VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) { GenLoc(D, /*IncludeOffset=*/true); - return; } bool USRGenerator::GenLoc(const Decl *D, bool IncludeOffset) { @@ -875,4 +879,3 @@ Out << MD->getName()->getName(); return false; } - Index: cfe/trunk/lib/Lex/PPDirectives.cpp =================================================================== --- cfe/trunk/lib/Lex/PPDirectives.cpp +++ cfe/trunk/lib/Lex/PPDirectives.cpp @@ -27,6 +27,7 @@ #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/Path.h" #include "llvm/Support/SaveAndRestore.h" + using namespace clang; //===----------------------------------------------------------------------===// @@ -272,8 +273,6 @@ } } - - /// SkipExcludedConditionalBlock - We just read a \#if or related directive and /// decided that the subsequent tokens are in the \#if'd out portion of the /// file. Lex the rest of the file, until we see an \#endif. If @@ -497,7 +496,6 @@ } void Preprocessor::PTHSkipExcludedConditionalBlock() { - while (1) { assert(CurPTHLexer); assert(CurPTHLexer->LexingRawMode == false); @@ -571,7 +569,6 @@ } // Otherwise, skip this block and go to the next one. - continue; } } @@ -728,7 +725,6 @@ return nullptr; } - //===----------------------------------------------------------------------===// // Preprocessor Directive Handling. //===----------------------------------------------------------------------===// @@ -740,9 +736,11 @@ if (pp->MacroExpansionInDirectivesOverride) pp->DisableMacroExpansion = false; } + ~ResetMacroExpansionHelper() { PP->DisableMacroExpansion = save; } + private: Preprocessor *PP; bool save; @@ -1210,7 +1208,6 @@ } } - /// HandleUserDiagnosticDirective - Handle a #warning or #error directive. /// void Preprocessor::HandleUserDiagnosticDirective(Token &Tok, @@ -1506,7 +1503,6 @@ const DirectoryLookup *LookupFrom, const FileEntry *LookupFromFile, bool isImport) { - Token FilenameTok; CurPPLexer->LexIncludeFilename(FilenameTok); @@ -2147,7 +2143,6 @@ // Get the next token of the macro. LexUnexpandedToken(Tok); } - } else { // Otherwise, read the body of a function-like macro. While we are at it, // check C99 6.10.3.2p1: ensure that # operators are followed by macro @@ -2176,7 +2171,6 @@ } if (Tok.is(tok::hashhash)) { - // If we see token pasting, check if it looks like the gcc comma // pasting extension. We'll use this information to suppress // diagnostics later on. @@ -2365,7 +2359,6 @@ AllocateUndefMacroDirective(MacroNameTok.getLocation())); } - //===----------------------------------------------------------------------===// // Preprocessor Conditional Directive Handling. //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Lex/TokenLexer.cpp =================================================================== --- cfe/trunk/lib/Lex/TokenLexer.cpp +++ cfe/trunk/lib/Lex/TokenLexer.cpp @@ -18,8 +18,8 @@ #include "clang/Lex/MacroInfo.h" #include "clang/Lex/Preprocessor.h" #include "llvm/ADT/SmallString.h" -using namespace clang; +using namespace clang; /// Create a TokenLexer for the specified macro with the specified actual /// arguments. Note that this ctor takes ownership of the ActualArgs pointer. @@ -76,8 +76,6 @@ Macro->DisableMacro(); } - - /// Create a TokenLexer for the specified token stream. This does not /// take ownership of the specified token vector. void TokenLexer::Init(const Token *TokArray, unsigned NumToks, @@ -107,7 +105,6 @@ } } - void TokenLexer::destroy() { // If this was a function-like macro that actually uses its arguments, delete // the expanded tokens. @@ -174,7 +171,6 @@ /// Expand the arguments of a function-like macro so that we can quickly /// return preexpanded tokens from Tokens. void TokenLexer::ExpandFunctionArguments() { - SmallVector ResultToks; // Loop through 'Tokens', expanding them into ResultToks. Keep @@ -394,8 +390,6 @@ MaybeRemoveCommaBeforeVaArgs(ResultToks, /*HasPasteOperator=*/true, Macro, ArgNo, PP); - - continue; } // If anything changed, install this as the new Tokens list. Index: cfe/trunk/lib/Parse/ParseObjc.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseObjc.cpp +++ cfe/trunk/lib/Parse/ParseObjc.cpp @@ -21,6 +21,7 @@ #include "clang/Sema/Scope.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringExtras.h" + using namespace clang; /// Skips attributes after an Objective-C @ directive. Emits a diagnostic. @@ -99,16 +100,20 @@ Sema &Actions; Scope *S; ObjCTypeParamList *Params; + public: ObjCTypeParamListScope(Sema &Actions, Scope *S) : Actions(Actions), S(S), Params(nullptr) {} + ~ObjCTypeParamListScope() { leave(); } + void enter(ObjCTypeParamList *P) { assert(!Params); Params = P; } + void leave() { if (Params) Actions.popObjCTypeParamList(S, Params); @@ -1961,7 +1966,6 @@ } HelperActionsForIvarDeclarations(interfaceDecl, atLoc, T, AllIvarDecls, false); - return; } /// objc-protocol-declaration: @@ -2938,7 +2942,6 @@ InMessageExpression) return false; - ParsedType Type; if (Tok.is(tok::annot_typename)) @@ -3567,7 +3570,7 @@ T.getOpenLocation(), T.getCloseLocation(), !HasOptionalParen); - } +} void Parser::ParseLexedObjCMethodDefs(LexedMethod &LM, bool parseMethod) { // MCDecl might be null due to error in method or c-function prototype, etc. @@ -3623,6 +3626,4 @@ while (Tok.getLocation() != OrigLoc && Tok.isNot(tok::eof)) ConsumeAnyToken(); } - - return; } Index: cfe/trunk/lib/Sema/SemaChecking.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaChecking.cpp +++ cfe/trunk/lib/Sema/SemaChecking.cpp @@ -39,6 +39,7 @@ #include "llvm/Support/ConvertUTF.h" #include "llvm/Support/raw_ostream.h" #include + using namespace clang; using namespace sema; @@ -716,27 +717,22 @@ case Builtin::BI__builtin___vsnprintf_chk: SemaBuiltinMemChkCall(*this, FDecl, TheCall, 1, 3); break; - case Builtin::BI__builtin_call_with_static_chain: if (SemaBuiltinCallWithStaticChain(*this, TheCall)) return ExprError(); break; - case Builtin::BI__exception_code: - case Builtin::BI_exception_code: { + case Builtin::BI_exception_code: if (SemaBuiltinSEHScopeCheck(*this, TheCall, Scope::SEHExceptScope, diag::err_seh___except_block)) return ExprError(); break; - } case Builtin::BI__exception_info: - case Builtin::BI_exception_info: { + case Builtin::BI_exception_info: if (SemaBuiltinSEHScopeCheck(*this, TheCall, Scope::SEHFilterScope, diag::err_seh___except_filter)) return ExprError(); break; - } - case Builtin::BI__GetExceptionInfo: if (checkArgCount(*this, TheCall, 1)) return ExprError(); @@ -783,7 +779,6 @@ if (SemaBuiltinPipePackets(*this, TheCall)) return ExprError(); break; - } // Since the target specific builtins for each arch overlap, only check those @@ -1063,7 +1058,6 @@ return true; } - if (IsLdrex) { TheCall->setType(ValType); return false; @@ -2117,7 +2111,6 @@ return AE; } - /// checkBuiltinArgument - Given a call to a builtin function, perform /// normal type-checking on the given argument, updating the call in /// place. This is useful when a builtin function requires custom @@ -3222,7 +3215,6 @@ return false; } - /// SemaBuiltinSetjmp - Handle __builtin_setjmp(void *env[5]). /// This checks that the target supports __builtin_setjmp. bool Sema::SemaBuiltinSetjmp(CallExpr *TheCall) { @@ -3238,7 +3230,7 @@ SLCT_UncheckedLiteral, SLCT_CheckedLiteral }; -} +} // end anonymous namespace // Determine if an expression is a string literal or constant string. // If this function returns false on the arguments to a function expecting a @@ -3533,6 +3525,7 @@ bool inFunctionCall; Sema::VariadicCallType CallType; llvm::SmallBitVector &CheckedVarArgs; + public: CheckFormatHandler(Sema &s, const StringLiteral *fexpr, const Expr *origFormatExpr, unsigned firstDataArg, @@ -3616,7 +3609,7 @@ bool IsStringLocation, Range StringRange, ArrayRef Fixit = None); }; -} +} // end anonymous namespace SourceRange CheckFormatHandler::getFormatStringRange() { return OrigFormatExpr->getSourceRange(); @@ -3805,7 +3798,6 @@ unsigned specifierLen, const char *csStart, unsigned csLen) { - bool keepGoing = true; if (argIndex < NumDataArgs) { // Consider the argument coverered, even though the specifier doesn't @@ -3924,6 +3916,7 @@ namespace { class CheckPrintfHandler : public CheckFormatHandler { bool ObjCContext; + public: CheckPrintfHandler(Sema &s, const StringLiteral *fexpr, const Expr *origFormatExpr, unsigned firstDataArg, @@ -3939,7 +3932,6 @@ ObjCContext(isObjC) {} - bool HandleInvalidPrintfConversionSpecifier( const analyze_printf::PrintfSpecifier &FS, const char *startSpecifier, @@ -3980,7 +3972,7 @@ const char *conversionPosition) override; }; -} +} // end anonymous namespace bool CheckPrintfHandler::HandleInvalidPrintfConversionSpecifier( const analyze_printf::PrintfSpecifier &FS, @@ -3999,7 +3991,6 @@ const analyze_format_string::OptionalAmount &Amt, unsigned k, const char *startSpecifier, unsigned specifierLen) { - if (Amt.hasDataArgument()) { if (!HasVAListArg) { unsigned argIndex = Amt.getArgIndex(); @@ -4211,7 +4202,6 @@ &FS, const char *startSpecifier, unsigned specifierLen) { - using namespace analyze_format_string; using namespace analyze_printf; const PrintfConversionSpecifier &CS = FS.getConversionSpecifier(); @@ -4581,7 +4571,6 @@ E->getLocStart(), /*IsStringLocation*/ false, SpecRange, FixItHint::CreateReplacement(SpecRange, os.str())); - } else { // The canonical type for formatting this value is different from the // actual type of the expression. (This occurs, for example, with Darwin's @@ -4738,7 +4727,7 @@ void HandleIncompleteScanList(const char *start, const char *end) override; }; -} +} // end anonymous namespace void CheckScanfHandler::HandleIncompleteScanList(const char *start, const char *end) { @@ -4765,7 +4754,6 @@ const analyze_scanf::ScanfSpecifier &FS, const char *startSpecifier, unsigned specifierLen) { - using namespace analyze_scanf; using namespace analyze_format_string; @@ -4892,7 +4880,6 @@ unsigned firstDataArg, FormatStringType Type, bool inFunctionCall, VariadicCallType CallType, llvm::SmallBitVector &CheckedVarArgs) { - // CHECK: is the format string a wide literal? if (!FExpr->isAscii() && !FExpr->isUTF8()) { CheckFormatHandler::EmitFormatDiagnostic( @@ -5365,7 +5352,6 @@ emitReplacement(*this, Call->getExprLoc(), Call->getCallee()->getSourceRange(), NewAbsKind, ArgType); - return; } //===--- CHECK: Standard memory functions ---------------------------------===// @@ -5618,7 +5604,6 @@ << FixItHint::CreateInsertion(ArgRange.getBegin(), "(void*)")); break; } - } // A little helper routine: ignore addition and subtraction of integer literals. @@ -6078,7 +6063,6 @@ } } - /// EvalVal - This function is complements EvalAddr in the mutual recursion. /// See the comments for EvalAddr for more details. static Expr *EvalVal(Expr *E, SmallVectorImpl &refVars, @@ -6267,7 +6251,6 @@ if (DRL->getDecl() == DRR->getDecl()) return; - // Special case: check for comparisons against literals that can be exactly // represented by APFloat. In such cases, do not emit a warning. This // is a heuristic: often comparison against such literals are used to @@ -6393,8 +6376,7 @@ } }; -static IntRange GetValueRange(ASTContext &C, llvm::APSInt &value, - unsigned MaxWidth) { +IntRange GetValueRange(ASTContext &C, llvm::APSInt &value, unsigned MaxWidth) { if (value.isSigned() && value.isNegative()) return IntRange(value.getMinSignedBits(), false); @@ -6406,8 +6388,8 @@ return IntRange(value.getActiveBits(), true); } -static IntRange GetValueRange(ASTContext &C, APValue &result, QualType Ty, - unsigned MaxWidth) { +IntRange GetValueRange(ASTContext &C, APValue &result, QualType Ty, + unsigned MaxWidth) { if (result.isInt()) return GetValueRange(C, result.getInt(), MaxWidth); @@ -6435,7 +6417,7 @@ return IntRange(MaxWidth, Ty->isUnsignedIntegerOrEnumerationType()); } -static QualType GetExprType(const Expr *E) { +QualType GetExprType(const Expr *E) { QualType Ty = E->getType(); if (const AtomicType *AtomicRHS = Ty->getAs()) Ty = AtomicRHS->getValueType(); @@ -6446,7 +6428,7 @@ /// range of values it might take. /// /// \param MaxWidth - the width to which the value will be truncated -static IntRange GetExprRange(ASTContext &C, const Expr *E, unsigned MaxWidth) { +IntRange GetExprRange(ASTContext &C, const Expr *E, unsigned MaxWidth) { E = E->IgnoreParens(); // Try a full evaluation first. @@ -6664,16 +6646,16 @@ return IntRange::forValueOfType(C, GetExprType(E)); } -static IntRange GetExprRange(ASTContext &C, const Expr *E) { +IntRange GetExprRange(ASTContext &C, const Expr *E) { return GetExprRange(C, E, C.getIntWidth(GetExprType(E))); } /// Checks whether the given value, which currently has the given /// source semantics, has the same value when coerced through the /// target semantics. -static bool IsSameFloatAfterCast(const llvm::APFloat &value, - const llvm::fltSemantics &Src, - const llvm::fltSemantics &Tgt) { +bool IsSameFloatAfterCast(const llvm::APFloat &value, + const llvm::fltSemantics &Src, + const llvm::fltSemantics &Tgt) { llvm::APFloat truncated = value; bool ignored; @@ -6688,9 +6670,9 @@ /// target semantics. /// /// The value might be a vector of floats (or a complex number). -static bool IsSameFloatAfterCast(const APValue &value, - const llvm::fltSemantics &Src, - const llvm::fltSemantics &Tgt) { +bool IsSameFloatAfterCast(const APValue &value, + const llvm::fltSemantics &Src, + const llvm::fltSemantics &Tgt) { if (value.isFloat()) return IsSameFloatAfterCast(value.getFloat(), Src, Tgt); @@ -6706,9 +6688,9 @@ IsSameFloatAfterCast(value.getComplexFloatImag(), Src, Tgt)); } -static void AnalyzeImplicitConversions(Sema &S, Expr *E, SourceLocation CC); +void AnalyzeImplicitConversions(Sema &S, Expr *E, SourceLocation CC); -static bool IsZero(Sema &S, Expr *E) { +bool IsZero(Sema &S, Expr *E) { // Suppress cases where we are comparing against an enum constant. if (const DeclRefExpr *DR = dyn_cast(E->IgnoreParenImpCasts())) @@ -6723,7 +6705,7 @@ return E->isIntegerConstantExpr(Value, S.Context) && Value == 0; } -static bool HasEnumType(Expr *E) { +bool HasEnumType(Expr *E) { // Strip off implicit integral promotions. while (ImplicitCastExpr *ICE = dyn_cast(E)) { if (ICE->getCastKind() != CK_IntegralCast && @@ -6735,7 +6717,7 @@ return E->getType()->isEnumeralType(); } -static void CheckTrivialUnsignedComparison(Sema &S, BinaryOperator *E) { +void CheckTrivialUnsignedComparison(Sema &S, BinaryOperator *E) { // Disable warning in template instantiations. if (!S.ActiveTemplateInstantiations.empty()) return; @@ -6763,10 +6745,10 @@ } } -static void DiagnoseOutOfRangeComparison(Sema &S, BinaryOperator *E, - Expr *Constant, Expr *Other, - llvm::APSInt Value, - bool RhsConstant) { +void DiagnoseOutOfRangeComparison(Sema &S, BinaryOperator *E, + Expr *Constant, Expr *Other, + llvm::APSInt Value, + bool RhsConstant) { // Disable warning in template instantiations. if (!S.ActiveTemplateInstantiations.empty()) return; @@ -6974,7 +6956,7 @@ /// Analyze the operands of the given comparison. Implements the /// fallback case from AnalyzeComparison. -static void AnalyzeImpConvsInComparison(Sema &S, BinaryOperator *E) { +void AnalyzeImpConvsInComparison(Sema &S, BinaryOperator *E) { AnalyzeImplicitConversions(S, E->getLHS(), E->getOperatorLoc()); AnalyzeImplicitConversions(S, E->getRHS(), E->getOperatorLoc()); } @@ -6982,7 +6964,7 @@ /// \brief Implements -Wsign-compare. /// /// \param E the binary operator to check for warnings -static void AnalyzeComparison(Sema &S, BinaryOperator *E) { +void AnalyzeComparison(Sema &S, BinaryOperator *E) { // The type the comparison is being performed in. QualType T = E->getLHS()->getType(); @@ -7083,8 +7065,8 @@ /// Analyzes an attempt to assign the given value to a bitfield. /// /// Returns true if there was something fishy about the attempt. -static bool AnalyzeBitFieldAssignment(Sema &S, FieldDecl *Bitfield, Expr *Init, - SourceLocation InitLoc) { +bool AnalyzeBitFieldAssignment(Sema &S, FieldDecl *Bitfield, Expr *Init, + SourceLocation InitLoc) { assert(Bitfield->isBitField()); if (Bitfield->isInvalidDecl()) return false; @@ -7138,7 +7120,7 @@ /// Analyze the given simple or compound assignment for warning-worthy /// operations. -static void AnalyzeAssignment(Sema &S, BinaryOperator *E) { +void AnalyzeAssignment(Sema &S, BinaryOperator *E) { // Just recurse on the LHS. AnalyzeImplicitConversions(S, E->getLHS(), E->getOperatorLoc()); @@ -7157,9 +7139,9 @@ } /// Diagnose an implicit cast; purely a helper for CheckImplicitConversion. -static void DiagnoseImpCast(Sema &S, Expr *E, QualType SourceType, QualType T, - SourceLocation CContext, unsigned diag, - bool pruneControlFlow = false) { +void DiagnoseImpCast(Sema &S, Expr *E, QualType SourceType, QualType T, + SourceLocation CContext, unsigned diag, + bool pruneControlFlow = false) { if (pruneControlFlow) { S.DiagRuntimeBehavior(E->getExprLoc(), E, S.PDiag(diag) @@ -7172,9 +7154,8 @@ } /// Diagnose an implicit cast; purely a helper for CheckImplicitConversion. -static void DiagnoseImpCast(Sema &S, Expr *E, QualType T, - SourceLocation CContext, unsigned diag, - bool pruneControlFlow = false) { +void DiagnoseImpCast(Sema &S, Expr *E, QualType T, SourceLocation CContext, + unsigned diag, bool pruneControlFlow = false) { DiagnoseImpCast(S, E, E->getType(), T, CContext, diag, pruneControlFlow); } @@ -7222,7 +7203,7 @@ return ValueInRange.toString(10); } -static bool IsImplicitBoolFloatConversion(Sema &S, Expr *Ex, bool ToBool) { +bool IsImplicitBoolFloatConversion(Sema &S, Expr *Ex, bool ToBool) { if (!isa(Ex)) return false; @@ -7262,8 +7243,7 @@ } } -static void DiagnoseNullConversion(Sema &S, Expr *E, QualType T, - SourceLocation CC) { +void DiagnoseNullConversion(Sema &S, Expr *E, QualType T, SourceLocation CC) { if (S.Diags.isIgnored(diag::warn_impcast_null_pointer_to_integer, E->getExprLoc())) return; @@ -7305,17 +7285,15 @@ S.getFixItZeroLiteralForType(T, Loc)); } -static void checkObjCArrayLiteral(Sema &S, QualType TargetType, - ObjCArrayLiteral *ArrayLiteral); -static void checkObjCDictionaryLiteral(Sema &S, QualType TargetType, - ObjCDictionaryLiteral *DictionaryLiteral); +void checkObjCArrayLiteral(Sema &S, QualType TargetType, + ObjCArrayLiteral *ArrayLiteral); +void checkObjCDictionaryLiteral(Sema &S, QualType TargetType, + ObjCDictionaryLiteral *DictionaryLiteral); /// Check a single element within a collection literal against the /// target element type. -static void checkObjCCollectionLiteralElement(Sema &S, - QualType TargetElementType, - Expr *Element, - unsigned ElementKind) { +void checkObjCCollectionLiteralElement(Sema &S, QualType TargetElementType, + Expr *Element, unsigned ElementKind) { // Skip a bitcast to 'id' or qualified 'id'. if (auto ICE = dyn_cast(Element)) { if (ICE->getCastKind() == CK_BitCast && @@ -7344,8 +7322,8 @@ /// Check an Objective-C array literal being converted to the given /// target type. -static void checkObjCArrayLiteral(Sema &S, QualType TargetType, - ObjCArrayLiteral *ArrayLiteral) { +void checkObjCArrayLiteral(Sema &S, QualType TargetType, + ObjCArrayLiteral *ArrayLiteral) { if (!S.NSArrayDecl) return; @@ -7372,9 +7350,8 @@ /// Check an Objective-C dictionary literal being converted to the given /// target type. -static void checkObjCDictionaryLiteral( - Sema &S, QualType TargetType, - ObjCDictionaryLiteral *DictionaryLiteral) { +void checkObjCDictionaryLiteral(Sema &S, QualType TargetType, + ObjCDictionaryLiteral *DictionaryLiteral) { if (!S.NSDictionaryDecl) return; @@ -7402,8 +7379,8 @@ // Helper function to filter out cases for constant width constant conversion. // Don't warn on char array initialization or for non-decimal values. -static bool isSameWidthConstantConversion(Sema &S, Expr *E, QualType T, - SourceLocation CC) { +bool isSameWidthConstantConversion(Sema &S, Expr *E, QualType T, + SourceLocation CC) { // If initializing from a constant, and the constant starts with '0', // then it is a binary, octal, or hexadecimal. Allow these constants // to fill all the bits, even if there is a sign change. @@ -7530,7 +7507,6 @@ return; DiagnoseImpCast(S, E, T, CC, diag::warn_impcast_float_precision); - } // ... or possibly if we're increasing rank, too else if (TargetBT->getKind() > SourceBT->getKind()) { @@ -7657,7 +7633,6 @@ if ((TargetRange.NonNegative && !SourceRange.NonNegative) || (!TargetRange.NonNegative && SourceRange.NonNegative && SourceRange.Width == TargetRange.Width)) { - if (S.SourceMgr.isInSystemMacro(CC)) return; @@ -7700,8 +7675,6 @@ return DiagnoseImpCast(S, E, SourceType, T, CC, diag::warn_impcast_different_enum_types); } - - return; } void CheckConditionalOperator(Sema &S, ConditionalOperator *E, @@ -7717,7 +7690,6 @@ AnalyzeImplicitConversions(S, E, CC); if (E->getType() != T) return CheckImplicitConversion(S, E, T, CC, &ICContext); - return; } void CheckConditionalOperator(Sema &S, ConditionalOperator *E, @@ -7750,7 +7722,7 @@ /// CheckBoolLikeConversion - Check conversion of given expression to boolean. /// Input argument E is a logical expression. -static void CheckBoolLikeConversion(Sema &S, Expr *E, SourceLocation CC) { +void CheckBoolLikeConversion(Sema &S, Expr *E, SourceLocation CC) { if (S.getLangOpts().Bool) return; CheckImplicitConversion(S, E->IgnoreParenImpCasts(), S.Context.BoolTy, CC); @@ -8088,7 +8060,6 @@ << FixItHint::CreateInsertion(getLocForEndOfToken(E->getLocEnd()), "()"); } - /// Diagnoses "dangerous" implicit conversions within the given /// expression (which is a full expression). Implements -Wconversion /// and -Wsign-compare. @@ -8474,6 +8445,7 @@ notePostMod(O, BO, SemaRef.getLangOpts().CPlusPlus ? UK_ModAsValue : UK_ModAsSideEffect); } + void VisitCompoundAssignOperator(CompoundAssignOperator *CAO) { VisitBinAssign(CAO); } @@ -8623,7 +8595,7 @@ Tree.merge(Elts[I]); } }; -} +} // end anonymous namespace void Sema::CheckUnsequencedOperations(Expr *E) { SmallVector WorkList; @@ -9033,7 +9005,7 @@ Range = e->getSourceRange(); } }; -} +} // end anonymous namespace /// Consider whether capturing the given variable can possibly lead to /// a retain cycle. @@ -9179,7 +9151,7 @@ } } }; -} +} // end anonymous namespace /// Check whether the given argument is a block which captures a /// variable. @@ -9415,7 +9387,6 @@ } } } - } /// Check a message send to see if it's likely to cause a retain cycle. @@ -9619,7 +9590,7 @@ return true; } -} // Unnamed namespace +} // end anonymous namespace void Sema::DiagnoseEmptyStmtBody(SourceLocation StmtLoc, const Stmt *Body, @@ -9715,7 +9686,6 @@ /// DiagnoseSelfMove - Emits a warning if a value is moved to itself. void Sema::DiagnoseSelfMove(const Expr *LHSExpr, const Expr *RHSExpr, SourceLocation OpLoc) { - if (Diags.isIgnored(diag::warn_sizeof_pointer_expr_memaccess, OpLoc)) return; @@ -9954,7 +9924,7 @@ return false; } -} +} // end anonymous namespace //===--- CHECK: pointer_with_type_tag attribute: datatypes should match ----// @@ -10085,7 +10055,7 @@ TypeInfo = I->second; return true; } -} // unnamed namespace +} // end anonymous namespace void Sema::RegisterTypeTagForDatatype(const IdentifierInfo *ArgumentKind, uint64_t MagicValue, QualType Type, @@ -10118,7 +10088,7 @@ (T1Kind == BuiltinType::Char_U && T2Kind == BuiltinType::UChar) || (T1Kind == BuiltinType::Char_S && T2Kind == BuiltinType::SChar); } -} // unnamed namespace +} // end anonymous namespace void Sema::CheckArgumentWithTypeTag(const ArgumentWithTypeTagAttr *Attr, const Expr * const *ExprArgs) { Index: cfe/trunk/lib/Sema/SemaDecl.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaDecl.cpp +++ cfe/trunk/lib/Sema/SemaDecl.cpp @@ -47,6 +47,7 @@ #include #include #include + using namespace clang; using namespace sema; @@ -88,7 +89,7 @@ bool AllowClassTemplates; }; -} +} // end anonymous namespace /// \brief Determine whether the token kind starts a simple-type-specifier. bool Sema::isSimpleTypeSpecifier(tok::TokenKind Kind) const { @@ -134,7 +135,7 @@ FoundNonType, FoundType }; -} // namespace +} // end anonymous namespace /// \brief Tries to perform unqualified lookup of the type decls in bases for /// dependent class. @@ -1143,7 +1144,6 @@ // disappear. } - void Sema::ActOnReenterFunctionContext(Scope* S, Decl *D) { // We assume that the caller has already called // ActOnReenterTemplateScope so getTemplatedDecl() works. @@ -1168,7 +1168,6 @@ } } - void Sema::ActOnExitFunctionContext() { // Same implementation as PopDeclContext, but returns to the lexical parent, // rather than the top-level class. @@ -1177,7 +1176,6 @@ assert(CurContext && "Popped translation unit!"); } - /// \brief Determine whether we allow overloading of the function /// PrevDecl with another declaration. /// @@ -1531,7 +1529,6 @@ Hint = FixItHint::CreateRemoval(CharSourceRange:: getCharRange(D->getLocStart(), AfterColon)); } - return; } void Sema::DiagnoseUnusedNestedTypedefs(const RecordDecl *D) { @@ -2524,7 +2521,7 @@ QualType PromotedType; }; -} +} // end anonymous namespace /// getSpecialMember - get the special member enum for a method. Sema::CXXSpecialMember Sema::getSpecialMember(const CXXMethodDecl *MD) { @@ -3226,10 +3223,8 @@ return false; } - void Sema::mergeObjCMethodDecls(ObjCMethodDecl *newMethod, ObjCMethodDecl *oldMethod) { - // Merge the attributes, including deprecated/unavailable AvailabilityMergeKind MergeKind = isa(oldMethod->getDeclContext()) @@ -5266,7 +5261,6 @@ } } - /// ActOnTypedefNameDecl - Perform semantic checking for a declaration which /// declares a typedef-name, either using the 'typedef' type specifier or via /// a C++0x [dcl.typedef]p2 alias-declaration: 'using T = A;'. @@ -6855,7 +6849,7 @@ MultiTemplateParamsArg TemplateParamLists; bool AddToScope; }; -} +} // end anonymous namespace namespace { @@ -6899,7 +6893,7 @@ CXXRecordDecl *ExpectedParent; }; -} +} // end anonymous namespace /// \brief Generate diagnostics for an invalid function redeclaration. /// @@ -7527,7 +7521,6 @@ Invalid = true; } - FunctionTemplate = FunctionTemplateDecl::Create(Context, DC, NewFD->getLocation(), Name, TemplateParams, @@ -7879,7 +7872,6 @@ NewFD->setInvalidDecl(); } } - } else if (const FunctionProtoType *FT = R->getAs()) { // When we're declaring a function with a typedef, typeof, etc as in the // following example, we'll need to synthesize (unnamed) @@ -8094,7 +8086,6 @@ << FixItHint::CreateRemoval( D.getDeclSpec().getStorageClassSpecLoc()); } - } else if (isExplicitSpecialization && isa(NewFD)) { if (CheckMemberSpecialization(NewFD, Previous)) NewFD->setInvalidDecl(); @@ -8213,7 +8204,6 @@ return Result; } } - } else if (!D.isFunctionDefinition() && isa(NewFD) && NewFD->isOutOfLine() && !isFriend && !isFunctionTemplateSpecialization && @@ -8843,6 +8833,7 @@ bool isInitList; llvm::SmallVector InitFieldIndex; + public: typedef EvaluatedExprVisitor Inherited; @@ -9064,7 +9055,7 @@ Inherited::VisitUnaryOperator(E); } - void VisitObjCMessageExpr(ObjCMessageExpr *E) { return; } + void VisitObjCMessageExpr(ObjCMessageExpr *E) {} void VisitCXXConstructExpr(CXXConstructExpr *E) { if (E->getConstructor()->isCopyConstructor()) { @@ -9160,7 +9151,7 @@ SelfReferenceChecker(S, OrigDecl).CheckExpr(E); } -} +} // end anonymous namespace QualType Sema::deduceVarTypeFromInitializer(VarDecl *VDecl, DeclarationName Name, QualType Type, @@ -10084,7 +10075,6 @@ if (getLangOpts().CPlusPlus11) Diag(var->getLocation(), diag::note_use_thread_local); } - } // Apply section attributes and pragmas to global variables. @@ -10888,7 +10878,6 @@ FD->setInvalidDecl(); } - static void RebuildLambdaScopeInfo(CXXMethodDecl *CallOperator, Sema &S) { CXXRecordDecl *const LambdaClass = CallOperator->getParent(); @@ -11417,7 +11406,6 @@ return dcl; } - /// When we finish delayed parsing of an attribute, we must attach it to the /// relevant Decl. void Sema::ActOnFinishDelayedAttribute(Scope *S, Decl *D, @@ -11432,7 +11420,6 @@ checkThisInStaticMemberFunctionAttributes(Method); } - /// ImplicitlyDefineFunction - An undeclared identifier was used in a function /// call, forming a call to an implicitly defined function (per C99 6.5.1p2). NamedDecl *Sema::ImplicitlyDefineFunction(SourceLocation Loc, @@ -11684,7 +11671,6 @@ return NewTD; } - /// \brief Check that this is a valid underlying type for an enum declaration. bool Sema::CheckEnumUnderlyingType(TypeSourceInfo *TI) { SourceLocation UnderlyingLoc = TI->getTypeLoc().getBeginLoc(); @@ -12528,7 +12514,6 @@ // is non-NULL, it's a definition of the tag declared by // PrevDecl. If it's NULL, we have a new definition. - // Otherwise, PrevDecl is not a tag, but was found with tag // lookup. This is only actually possible in C++, where a few // things like templates still live in the tag namespace. @@ -12646,7 +12631,6 @@ ED->setIntegerType(QualType(EnumUnderlying.get(), 0)); ED->setPromotionType(ED->getIntegerType()); } - } else { // struct/union/class @@ -12787,7 +12771,6 @@ PushOnScopeChains(New, S, !IsForwardReference); if (IsForwardReference) SearchDC->makeDeclVisibleInContext(New); - } else { CurContext->addDecl(New); } Index: cfe/trunk/lib/Sema/SemaDeclAttr.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaDeclAttr.cpp +++ cfe/trunk/lib/Sema/SemaDeclAttr.cpp @@ -32,6 +32,7 @@ #include "clang/Sema/Scope.h" #include "llvm/ADT/StringExtras.h" #include "llvm/Support/MathExtras.h" + using namespace clang; using namespace sema; @@ -41,7 +42,7 @@ Cpp, ObjC }; -} +} // end namespace AttributeLangSupport //===----------------------------------------------------------------------===// // Helper functions @@ -53,6 +54,7 @@ static bool isFunctionOrMethod(const Decl *D) { return (D->getFunctionType() != nullptr) || isa(D); } + /// \brief Return true if the given decl has function type (function or /// function-typed variable) or an Objective-C method or a block. static bool isFunctionOrMethodOrBlock(const Decl *D) { @@ -888,7 +890,6 @@ Attr.getAttributeSpellingListIndex())); } - static bool checkForConsumableClass(Sema &S, const CXXMethodDecl *MD, const AttributeList &Attr) { ASTContext &CurrContext = S.getASTContext(); @@ -906,7 +907,6 @@ return true; } - static void handleCallableWhenAttr(Sema &S, Decl *D, const AttributeList &Attr) { if (!checkAttributeAtLeastNumArgs(S, Attr, 1)) @@ -945,7 +945,6 @@ States.size(), Attr.getAttributeSpellingListIndex())); } - static void handleParamTypestateAttr(Sema &S, Decl *D, const AttributeList &Attr) { ParamTypestateAttr::ConsumedState ParamState; @@ -983,7 +982,6 @@ Attr.getAttributeSpellingListIndex())); } - static void handleReturnTypestateAttr(Sema &S, Decl *D, const AttributeList &Attr) { ReturnTypestateAttr::ConsumedState ReturnState; @@ -1032,7 +1030,6 @@ Attr.getAttributeSpellingListIndex())); } - static void handleSetTypestateAttr(Sema &S, Decl *D, const AttributeList &Attr) { if (!checkForConsumableClass(S, cast(D), Attr)) return; @@ -2615,7 +2612,6 @@ D->addAttr(NewAttr); } - static void handleCleanupAttr(Sema &S, Decl *D, const AttributeList &Attr) { VarDecl *VD = cast(D); if (!VD->hasLocalStorage()) { @@ -3073,7 +3069,6 @@ // Save dependent expressions in the AST to be instantiated. D->addAttr(::new (Context) AlignValueAttr(TmpAttr)); - return; } static void handleAlignedAttr(Sema &S, Decl *D, const AttributeList &Attr) { @@ -3878,7 +3873,6 @@ static bool checkLaunchBoundsArgument(Sema &S, Expr *E, const CUDALaunchBoundsAttr &Attr, const unsigned Idx) { - if (S.DiagnoseUnexpandedParameterPack(E)) return false; @@ -4021,6 +4015,7 @@ type->isObjCObjectPointerType() || S.Context.isObjCNSObjectType(type); } + static bool isValidSubjectOfCFAttribute(Sema &S, QualType type) { return type->isDependentType() || type->isPointerType() || @@ -4057,7 +4052,6 @@ static void handleNSReturnsRetainedAttr(Sema &S, Decl *D, const AttributeList &Attr) { - QualType returnType; if (ObjCMethodDecl *MD = dyn_cast(D)) @@ -5260,53 +5254,42 @@ case AttributeList::AT_VecReturn: handleVecReturnAttr(S, D, Attr); break; - case AttributeList::AT_ObjCOwnership: handleObjCOwnershipAttr(S, D, Attr); break; case AttributeList::AT_ObjCPreciseLifetime: handleObjCPreciseLifetimeAttr(S, D, Attr); break; - case AttributeList::AT_ObjCReturnsInnerPointer: handleObjCReturnsInnerPointerAttr(S, D, Attr); break; - case AttributeList::AT_ObjCRequiresSuper: handleObjCRequiresSuperAttr(S, D, Attr); break; - case AttributeList::AT_ObjCBridge: handleObjCBridgeAttr(S, scope, D, Attr); break; - case AttributeList::AT_ObjCBridgeMutable: handleObjCBridgeMutableAttr(S, scope, D, Attr); break; - case AttributeList::AT_ObjCBridgeRelated: handleObjCBridgeRelatedAttr(S, scope, D, Attr); break; - case AttributeList::AT_ObjCDesignatedInitializer: handleObjCDesignatedInitializer(S, D, Attr); break; - case AttributeList::AT_ObjCRuntimeName: handleObjCRuntimeName(S, D, Attr); break; - case AttributeList::AT_ObjCBoxable: handleObjCBoxable(S, D, Attr); break; - case AttributeList::AT_CFAuditedTransfer: handleCFAuditedTransferAttr(S, D, Attr); break; case AttributeList::AT_CFUnknownTransfer: handleCFUnknownTransferAttr(S, D, Attr); break; - case AttributeList::AT_CFConsumed: case AttributeList::AT_NSConsumed: handleNSConsumedAttr(S, D, Attr); @@ -5314,7 +5297,6 @@ case AttributeList::AT_NSConsumesSelf: handleSimpleAttribute(S, D, Attr); break; - case AttributeList::AT_NSReturnsAutoreleased: case AttributeList::AT_NSReturnsNotRetained: case AttributeList::AT_CFReturnsNotRetained: @@ -5331,11 +5313,9 @@ case AttributeList::AT_VecTypeHint: handleVecTypeHint(S, D, Attr); break; - case AttributeList::AT_InitPriority: handleInitPriorityAttr(S, D, Attr); break; - case AttributeList::AT_Packed: handlePackedAttr(S, D, Attr); break; @@ -5863,7 +5843,6 @@ diag.Triggered = true; } - static bool isDeclDeprecated(Decl *D) { do { if (D->isDeprecated()) @@ -5969,7 +5948,6 @@ } } } - break; case Sema::AD_Partial: Index: cfe/trunk/lib/Sema/SemaExprObjC.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaExprObjC.cpp +++ cfe/trunk/lib/Sema/SemaExprObjC.cpp @@ -1035,7 +1035,6 @@ HasPackExpansions = true; } - QualType Ty = Context.getObjCObjectPointerType( @@ -1919,8 +1918,6 @@ return ExprError(); } - - ExprResult Sema:: ActOnClassPropertyRefExpr(IdentifierInfo &receiverName, IdentifierInfo &propertyName, @@ -2035,7 +2032,7 @@ } }; -} +} // end anonymous namespace Sema::ObjCMessageKind Sema::getObjCMessageKind(Scope *S, IdentifierInfo *Name, @@ -2186,7 +2183,6 @@ LBracLoc, SelectorLocs, RBracLoc, Args); } - ExprResult Sema::BuildClassMessageImplicit(QualType ReceiverType, bool isSuperReceiver, SourceLocation Loc, @@ -2201,7 +2197,6 @@ /*SuperLoc=*/isSuperReceiver ? Loc : SourceLocation(), Sel, Method, Loc, Loc, Loc, Args, /*isImplicit=*/true); - } static void applyCocoaAPICheck(Sema &S, const ObjCMessageExpr *Msg, @@ -2468,7 +2463,6 @@ if (ReceiverType.isNull()) return ExprError(); - if (!ReceiverTypeInfo) ReceiverTypeInfo = Context.getTrivialTypeSourceInfo(ReceiverType, LBracLoc); @@ -3055,11 +3049,13 @@ /// struct A* ACTC_coreFoundation }; + static bool isAnyRetainable(ARCConversionTypeClass ACTC) { return (ACTC == ACTC_retainable || ACTC == ACTC_coreFoundation || ACTC == ACTC_voidPtr); } + static bool isAnyCLike(ARCConversionTypeClass ACTC) { return ACTC == ACTC_none || ACTC == ACTC_voidPtr || @@ -3331,7 +3327,7 @@ } } }; -} +} // end anonymous namespace bool Sema::isKnownName(StringRef name) { if (name.empty()) @@ -3783,7 +3779,6 @@ else if (PRE->isImplicitProperty()) { if (ObjCMethodDecl *Getter = PRE->getImplicitPropertyGetter()) SrcType = Getter->getReturnType(); - } } @@ -3793,7 +3788,6 @@ return; CheckObjCBridgeRelatedConversions(castExpr->getLocStart(), castType, SrcType, castExpr); - return; } bool Sema::CheckTollFreeBridgeStaticCast(QualType castType, Expr *castExpr, Index: cfe/trunk/lib/Sema/SemaInit.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaInit.cpp +++ cfe/trunk/lib/Sema/SemaInit.cpp @@ -26,6 +26,7 @@ #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/raw_ostream.h" #include + using namespace clang; //===----------------------------------------------------------------------===// @@ -204,6 +205,8 @@ // Semantic checking for initializer lists. //===----------------------------------------------------------------------===// +namespace { + /// @brief Semantic checking for initializer lists. /// /// The InitListChecker class contains a set of routines that each @@ -231,7 +234,6 @@ /// point. CheckDesignatedInitializer() recursively steps into the /// designated subobject and manages backing out the recursion to /// initialize the subobjects after the one designated. -namespace { class InitListChecker { Sema &SemaRef; bool hadError; @@ -360,6 +362,7 @@ // semantic analysis and code generation. InitListExpr *getFullyStructuredList() const { return FullyStructuredList; } }; + } // end anonymous namespace ExprResult InitListChecker::PerformEmptyInit(Sema &SemaRef, @@ -419,8 +422,6 @@ if (CtorDecl->getMinRequiredArguments() == 0 && CtorDecl->isExplicit() && R->getDeclName() && SemaRef.SourceMgr.isInSystemHeader(CtorDecl->getLocation())) { - - bool IsInStd = false; for (NamespaceDecl *ND = dyn_cast(R->getDeclContext()); ND && !IsInStd; ND = dyn_cast(ND->getParent())) { @@ -707,7 +708,6 @@ } } - InitListChecker::InitListChecker(Sema &S, const InitializedEntity &Entity, InitListExpr *IL, QualType &T, bool VerifyOnly) @@ -888,7 +888,6 @@ } } - /// Check whether the initializer \p IList (that was written with explicit /// braces) can be used to initialize an object of type \p T. /// @@ -1220,7 +1219,6 @@ } } - void InitListChecker::CheckScalarType(const InitializedEntity &Entity, InitListExpr *IList, QualType DeclType, unsigned &Index, @@ -1919,7 +1917,7 @@ RecordDecl *Record; }; -} +} // end anonymous namespace /// @brief Check the well-formedness of a C99 designated initializer. /// @@ -4068,7 +4066,6 @@ return Initializer->getValueKind(); } - /// \brief Reference initialization without resolving overloaded functions. static void TryReferenceInitializationCore(Sema &S, const InitializedEntity &Entity, @@ -4303,7 +4300,6 @@ } Sequence.AddReferenceBindingStep(cv1T1, /*bindingTemporary=*/true); - return; } /// \brief Attempt character array initialization from a string literal Index: cfe/trunk/lib/Sema/SemaObjCProperty.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaObjCProperty.cpp +++ cfe/trunk/lib/Sema/SemaObjCProperty.cpp @@ -336,7 +336,6 @@ } } while (Tok.isNot(tok::r_paren)); return false; - } /// Check for a mismatch in the atomicity of the given properties. @@ -805,7 +804,6 @@ property->setPropertyAttributes(ObjCPropertyDecl::OBJC_PR_strong); else if (ivarLifetime == Qualifiers::OCL_Weak) property->setPropertyAttributes(ObjCPropertyDecl::OBJC_PR_weak); - return; } /// DiagnosePropertyMismatchDeclInProtocols - diagnose properties declared @@ -1536,7 +1534,6 @@ ObjCContainerDecl::PropertyMap &PropMap, ObjCContainerDecl::PropertyMap &SuperPropMap, bool IncludeProtocols = true) { - if (ObjCInterfaceDecl *IDecl = dyn_cast(CDecl)) { for (auto *Prop : IDecl->properties()) PropMap[std::make_pair(Prop->getIdentifier(), Prop->isClassProperty())] = @@ -1655,7 +1652,6 @@ /// in class's \@implementation. void Sema::DefaultSynthesizeProperties(Scope *S, ObjCImplDecl* IMPDecl, ObjCInterfaceDecl *IDecl) { - ObjCInterfaceDecl::PropertyMap PropMap; ObjCInterfaceDecl::PropertyDeclOrder PropertyOrder; IDecl->collectPropertiesToImplement(PropMap, PropertyOrder); @@ -2499,5 +2495,4 @@ if ((Attributes & ObjCDeclSpec::DQ_PR_readonly) && (Attributes & ObjCDeclSpec::DQ_PR_setter)) Diag(Loc, diag::warn_objc_readonly_property_has_setter); - } Index: cfe/trunk/lib/Sema/SemaTemplate.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaTemplate.cpp +++ cfe/trunk/lib/Sema/SemaTemplate.cpp @@ -1,13 +1,13 @@ -//===------- SemaTemplate.cpp - Semantic Analysis for C++ Templates -------===/ +//===------- SemaTemplate.cpp - Semantic Analysis for C++ Templates -------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. -//===----------------------------------------------------------------------===/ +//===----------------------------------------------------------------------===// // // This file implements semantic analysis for C++ templates. -//===----------------------------------------------------------------------===/ +//===----------------------------------------------------------------------===// #include "TreeTransform.h" #include "clang/AST/ASTConsumer.h" @@ -32,6 +32,7 @@ #include "llvm/ADT/SmallBitVector.h" #include "llvm/ADT/SmallString.h" #include "llvm/ADT/StringExtras.h" + using namespace clang; using namespace sema; @@ -458,7 +459,6 @@ Diag(Loc, diag::err_template_param_shadow) << cast(PrevDecl)->getDeclName(); Diag(PrevDecl->getLocation(), diag::note_template_param_here); - return; } /// AdjustDeclIfTemplate - If the given decl happens to be a template, reset @@ -1577,7 +1577,7 @@ return TraverseType(T->getInjectedSpecializationType()); } }; -} +} // end anonymous namespace /// Determines whether a given type depends on the given parameter /// list. @@ -2713,7 +2713,7 @@ VarTemplatePartialSpecializationDecl *Partial; TemplateArgumentList *Args; }; -} +} // end anonymous namespace DeclResult Sema::CheckVarTemplateId(VarTemplateDecl *Template, SourceLocation TemplateLoc, @@ -4014,7 +4014,7 @@ bool VisitTagDecl(const TagDecl *Tag); bool VisitNestedNameSpecifier(NestedNameSpecifier *NNS); }; -} +} // end anonymous namespace bool UnnamedLocalNoLinkageFinder::VisitBuiltinType(const BuiltinType*) { return false; @@ -4229,7 +4229,6 @@ llvm_unreachable("Invalid NestedNameSpecifier::Kind!"); } - /// \brief Check a template argument against its corresponding /// template type parameter. /// @@ -8303,7 +8302,7 @@ return E; } }; -} +} // end anonymous namespace /// \brief Rebuilds a type within the context of the current instantiation. ///