From owner-svn-src-vendor@FreeBSD.ORG Fri Jan 15 15:39:41 2010 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 49332106566B; Fri, 15 Jan 2010 15:39:41 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 32E478FC26; Fri, 15 Jan 2010 15:39:41 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0FFdf4P015005; Fri, 15 Jan 2010 15:39:41 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0FFdeFE014986; Fri, 15 Jan 2010 15:39:40 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201001151539.o0FFdeFE014986@svn.freebsd.org> From: Roman Divacky Date: Fri, 15 Jan 2010 15:39:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r202379 - in vendor/clang/dist: . docs examples/PrintFunctionNames include/clang-c include/clang/AST include/clang/Analysis/PathSensitive include/clang/Basic include/clang/Driver includ... X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jan 2010 15:39:41 -0000 Author: rdivacky Date: Fri Jan 15 15:39:40 2010 New Revision: 202379 URL: http://svn.freebsd.org/changeset/base/202379 Log: Update clang to r93512. Added: vendor/clang/dist/include/clang/Lex/ExternalPreprocessorSource.h vendor/clang/dist/lib/AST/AttrImpl.cpp vendor/clang/dist/lib/CodeGen/TargetInfo.cpp vendor/clang/dist/lib/CodeGen/TargetInfo.h vendor/clang/dist/lib/Sema/TargetAttributesSema.cpp vendor/clang/dist/lib/Sema/TargetAttributesSema.h vendor/clang/dist/test/Analysis/reference.cpp vendor/clang/dist/test/Analysis/security-syntax-checks-no-emit.c vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.qual/class.qual/p2.cpp vendor/clang/dist/test/CXX/special/class.ctor/p1.cpp vendor/clang/dist/test/CXX/temp/temp.decls/temp.mem/p5.cpp vendor/clang/dist/test/CodeCompletion/Inputs/ vendor/clang/dist/test/CodeCompletion/Inputs/macros.h vendor/clang/dist/test/CodeCompletion/ordinary-name.cpp vendor/clang/dist/test/CodeGen/annotate.c vendor/clang/dist/test/CodeGenCXX/deferred-global-init.cpp vendor/clang/dist/test/Frontend/macros.c vendor/clang/dist/test/Index/complete-tabs.c vendor/clang/dist/test/Lexer/has_feature_cxx0x.cpp vendor/clang/dist/test/Lexer/hexfloat.cpp vendor/clang/dist/test/Misc/tabstop.c vendor/clang/dist/test/Preprocessor/foo.framework/ vendor/clang/dist/test/Preprocessor/foo.framework/Headers/ vendor/clang/dist/test/Preprocessor/foo.framework/Headers/bar.h vendor/clang/dist/test/Preprocessor/foo.framework/Headers/foo.h vendor/clang/dist/test/Preprocessor/framework-include.m vendor/clang/dist/test/Rewriter/rewrite-anonymous-union.m vendor/clang/dist/test/Rewriter/rewrite-byref-vars.mm vendor/clang/dist/test/Rewriter/rewrite-eh.m vendor/clang/dist/test/Rewriter/rewrite-foreach-7.m vendor/clang/dist/test/Rewriter/rewrite-forward-class.m vendor/clang/dist/test/Rewriter/rewrite-function-decl.mm vendor/clang/dist/test/Rewriter/rewrite-ivar-use.m vendor/clang/dist/test/Rewriter/rewrite-trivial-constructor.mm vendor/clang/dist/test/Rewriter/rewrite-weak-attr.m vendor/clang/dist/test/Rewriter/weak_byref_objects.m vendor/clang/dist/test/Sema/warn-unreachable.c vendor/clang/dist/test/SemaCXX/literal-operators.cpp vendor/clang/dist/test/SemaCXX/unreachable-code.cpp vendor/clang/dist/test/SemaObjC/continuation-class-property.m vendor/clang/dist/test/SemaObjC/ivar-lookup-resolution-builtin.m vendor/clang/dist/test/SemaTemplate/dependent-base-classes.cpp vendor/clang/dist/test/SemaTemplate/typo-dependent-name.cpp vendor/clang/dist/tools/CIndex/CIndexCodeCompletion.cpp vendor/clang/dist/tools/CIndex/CIndexUSRs.cpp vendor/clang/dist/tools/CIndex/CIndexer.cpp vendor/clang/dist/tools/CIndex/CIndexer.h vendor/clang/dist/utils/VtableTest/ vendor/clang/dist/utils/VtableTest/Makefile vendor/clang/dist/utils/VtableTest/check-zti (contents, props changed) vendor/clang/dist/utils/VtableTest/check-ztt (contents, props changed) vendor/clang/dist/utils/VtableTest/check-zvt (contents, props changed) vendor/clang/dist/utils/VtableTest/gen.cc Modified: vendor/clang/dist/LICENSE.TXT vendor/clang/dist/docs/InternalsManual.html vendor/clang/dist/docs/LanguageExtensions.html vendor/clang/dist/examples/PrintFunctionNames/README.txt vendor/clang/dist/include/clang-c/Index.h vendor/clang/dist/include/clang/AST/APValue.h vendor/clang/dist/include/clang/AST/ASTContext.h vendor/clang/dist/include/clang/AST/Attr.h vendor/clang/dist/include/clang/AST/CharUnits.h vendor/clang/dist/include/clang/AST/Decl.h vendor/clang/dist/include/clang/AST/DeclCXX.h vendor/clang/dist/include/clang/AST/DeclObjC.h vendor/clang/dist/include/clang/AST/DeclarationName.h vendor/clang/dist/include/clang/AST/Expr.h vendor/clang/dist/include/clang/AST/ExprCXX.h vendor/clang/dist/include/clang/AST/Stmt.h vendor/clang/dist/include/clang/AST/TypeLoc.h vendor/clang/dist/include/clang/Analysis/PathSensitive/BugReporter.h vendor/clang/dist/include/clang/Analysis/PathSensitive/ConstraintManager.h vendor/clang/dist/include/clang/Analysis/PathSensitive/GRExprEngine.h vendor/clang/dist/include/clang/Analysis/PathSensitive/GRState.h vendor/clang/dist/include/clang/Analysis/PathSensitive/GRSubEngine.h vendor/clang/dist/include/clang/Analysis/PathSensitive/MemRegion.h vendor/clang/dist/include/clang/Analysis/PathSensitive/SValuator.h vendor/clang/dist/include/clang/Analysis/PathSensitive/Store.h vendor/clang/dist/include/clang/Basic/Diagnostic.h vendor/clang/dist/include/clang/Basic/DiagnosticDriverKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticLexKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticParseKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist/include/clang/Basic/PartialDiagnostic.h vendor/clang/dist/include/clang/Basic/SourceLocation.h vendor/clang/dist/include/clang/Basic/TargetInfo.h vendor/clang/dist/include/clang/Driver/CC1Options.td vendor/clang/dist/include/clang/Driver/Options.td vendor/clang/dist/include/clang/Driver/ToolChain.h vendor/clang/dist/include/clang/Driver/Types.def vendor/clang/dist/include/clang/Frontend/CompilerInstance.h vendor/clang/dist/include/clang/Frontend/DiagnosticOptions.h vendor/clang/dist/include/clang/Frontend/PCHReader.h vendor/clang/dist/include/clang/Frontend/Utils.h vendor/clang/dist/include/clang/Lex/DirectoryLookup.h vendor/clang/dist/include/clang/Lex/HeaderMap.h vendor/clang/dist/include/clang/Lex/HeaderSearch.h vendor/clang/dist/include/clang/Lex/Preprocessor.h vendor/clang/dist/include/clang/Parse/Action.h vendor/clang/dist/include/clang/Parse/DeclSpec.h vendor/clang/dist/include/clang/Parse/Parser.h vendor/clang/dist/include/clang/Rewrite/Rewriter.h vendor/clang/dist/include/clang/Sema/CodeCompleteConsumer.h vendor/clang/dist/lib/AST/APValue.cpp vendor/clang/dist/lib/AST/ASTContext.cpp vendor/clang/dist/lib/AST/CMakeLists.txt vendor/clang/dist/lib/AST/Decl.cpp vendor/clang/dist/lib/AST/DeclCXX.cpp vendor/clang/dist/lib/AST/DeclarationName.cpp vendor/clang/dist/lib/AST/Expr.cpp vendor/clang/dist/lib/AST/ExprConstant.cpp vendor/clang/dist/lib/AST/RecordLayoutBuilder.cpp vendor/clang/dist/lib/AST/Stmt.cpp vendor/clang/dist/lib/AST/StmtPrinter.cpp vendor/clang/dist/lib/AST/TypeLoc.cpp vendor/clang/dist/lib/AST/TypePrinter.cpp vendor/clang/dist/lib/Analysis/AnalysisContext.cpp vendor/clang/dist/lib/Analysis/BasicConstraintManager.cpp vendor/clang/dist/lib/Analysis/BugReporter.cpp vendor/clang/dist/lib/Analysis/CFRefCount.cpp vendor/clang/dist/lib/Analysis/CheckSecuritySyntaxOnly.cpp vendor/clang/dist/lib/Analysis/Environment.cpp vendor/clang/dist/lib/Analysis/GRExprEngine.cpp vendor/clang/dist/lib/Analysis/GRState.cpp vendor/clang/dist/lib/Analysis/MemRegion.cpp vendor/clang/dist/lib/Analysis/OSAtomicChecker.cpp vendor/clang/dist/lib/Analysis/RangeConstraintManager.cpp vendor/clang/dist/lib/Analysis/RegionStore.cpp vendor/clang/dist/lib/Analysis/ReturnStackAddressChecker.cpp vendor/clang/dist/lib/Analysis/SVals.cpp vendor/clang/dist/lib/Analysis/SValuator.cpp vendor/clang/dist/lib/Analysis/SimpleConstraintManager.cpp vendor/clang/dist/lib/Analysis/SimpleConstraintManager.h vendor/clang/dist/lib/Analysis/SimpleSValuator.cpp vendor/clang/dist/lib/Analysis/Store.cpp vendor/clang/dist/lib/Basic/Diagnostic.cpp vendor/clang/dist/lib/Basic/Targets.cpp vendor/clang/dist/lib/CodeGen/CGBlocks.cpp vendor/clang/dist/lib/CodeGen/CGBlocks.h vendor/clang/dist/lib/CodeGen/CGCXX.cpp vendor/clang/dist/lib/CodeGen/CGClass.cpp vendor/clang/dist/lib/CodeGen/CGDebugInfo.cpp vendor/clang/dist/lib/CodeGen/CGDebugInfo.h vendor/clang/dist/lib/CodeGen/CGDecl.cpp vendor/clang/dist/lib/CodeGen/CGDeclCXX.cpp vendor/clang/dist/lib/CodeGen/CGExpr.cpp vendor/clang/dist/lib/CodeGen/CGExprAgg.cpp vendor/clang/dist/lib/CodeGen/CGExprCXX.cpp vendor/clang/dist/lib/CodeGen/CGExprComplex.cpp vendor/clang/dist/lib/CodeGen/CGExprConstant.cpp vendor/clang/dist/lib/CodeGen/CGExprScalar.cpp vendor/clang/dist/lib/CodeGen/CGObjCGNU.cpp vendor/clang/dist/lib/CodeGen/CGRTTI.cpp vendor/clang/dist/lib/CodeGen/CGVtable.cpp vendor/clang/dist/lib/CodeGen/CGVtable.h vendor/clang/dist/lib/CodeGen/CMakeLists.txt vendor/clang/dist/lib/CodeGen/CodeGenFunction.cpp vendor/clang/dist/lib/CodeGen/CodeGenFunction.h vendor/clang/dist/lib/CodeGen/CodeGenModule.cpp vendor/clang/dist/lib/CodeGen/CodeGenModule.h vendor/clang/dist/lib/CodeGen/CodeGenTypes.cpp vendor/clang/dist/lib/CodeGen/CodeGenTypes.h vendor/clang/dist/lib/CodeGen/Mangle.cpp vendor/clang/dist/lib/Driver/ToolChains.cpp vendor/clang/dist/lib/Driver/ToolChains.h vendor/clang/dist/lib/Driver/Tools.cpp vendor/clang/dist/lib/Driver/Types.cpp vendor/clang/dist/lib/Frontend/ASTConsumers.cpp vendor/clang/dist/lib/Frontend/AnalysisConsumer.cpp vendor/clang/dist/lib/Frontend/CompilerInstance.cpp vendor/clang/dist/lib/Frontend/CompilerInvocation.cpp vendor/clang/dist/lib/Frontend/FixItRewriter.cpp vendor/clang/dist/lib/Frontend/FrontendActions.cpp vendor/clang/dist/lib/Frontend/InitHeaderSearch.cpp vendor/clang/dist/lib/Frontend/InitPreprocessor.cpp vendor/clang/dist/lib/Frontend/PCHReader.cpp vendor/clang/dist/lib/Frontend/PCHReaderDecl.cpp vendor/clang/dist/lib/Frontend/PCHReaderStmt.cpp vendor/clang/dist/lib/Frontend/PCHWriter.cpp vendor/clang/dist/lib/Frontend/PCHWriterDecl.cpp vendor/clang/dist/lib/Frontend/PCHWriterStmt.cpp vendor/clang/dist/lib/Frontend/PrintParserCallbacks.cpp vendor/clang/dist/lib/Frontend/RewriteObjC.cpp vendor/clang/dist/lib/Frontend/TextDiagnosticPrinter.cpp vendor/clang/dist/lib/Headers/xmmintrin.h vendor/clang/dist/lib/Lex/HeaderMap.cpp vendor/clang/dist/lib/Lex/HeaderSearch.cpp vendor/clang/dist/lib/Lex/Lexer.cpp vendor/clang/dist/lib/Lex/LiteralSupport.cpp vendor/clang/dist/lib/Lex/PPDirectives.cpp vendor/clang/dist/lib/Lex/PPLexerChange.cpp vendor/clang/dist/lib/Lex/PPMacroExpansion.cpp vendor/clang/dist/lib/Lex/Pragma.cpp vendor/clang/dist/lib/Lex/Preprocessor.cpp vendor/clang/dist/lib/Parse/DeclSpec.cpp vendor/clang/dist/lib/Parse/ParseDecl.cpp vendor/clang/dist/lib/Parse/ParseDeclCXX.cpp vendor/clang/dist/lib/Parse/ParseExpr.cpp vendor/clang/dist/lib/Parse/ParseExprCXX.cpp vendor/clang/dist/lib/Parse/ParseObjc.cpp vendor/clang/dist/lib/Parse/ParseStmt.cpp vendor/clang/dist/lib/Parse/ParseTemplate.cpp vendor/clang/dist/lib/Parse/Parser.cpp vendor/clang/dist/lib/Rewrite/Rewriter.cpp vendor/clang/dist/lib/Sema/CMakeLists.txt vendor/clang/dist/lib/Sema/CodeCompleteConsumer.cpp vendor/clang/dist/lib/Sema/IdentifierResolver.cpp vendor/clang/dist/lib/Sema/IdentifierResolver.h vendor/clang/dist/lib/Sema/Lookup.h vendor/clang/dist/lib/Sema/Sema.cpp vendor/clang/dist/lib/Sema/Sema.h vendor/clang/dist/lib/Sema/SemaCXXCast.cpp vendor/clang/dist/lib/Sema/SemaCXXScopeSpec.cpp vendor/clang/dist/lib/Sema/SemaChecking.cpp vendor/clang/dist/lib/Sema/SemaCodeComplete.cpp vendor/clang/dist/lib/Sema/SemaDecl.cpp vendor/clang/dist/lib/Sema/SemaDeclAttr.cpp vendor/clang/dist/lib/Sema/SemaDeclCXX.cpp vendor/clang/dist/lib/Sema/SemaDeclObjC.cpp vendor/clang/dist/lib/Sema/SemaExpr.cpp vendor/clang/dist/lib/Sema/SemaExprCXX.cpp vendor/clang/dist/lib/Sema/SemaExprObjC.cpp vendor/clang/dist/lib/Sema/SemaInit.cpp vendor/clang/dist/lib/Sema/SemaLookup.cpp vendor/clang/dist/lib/Sema/SemaOverload.cpp vendor/clang/dist/lib/Sema/SemaOverload.h vendor/clang/dist/lib/Sema/SemaStmt.cpp vendor/clang/dist/lib/Sema/SemaTemplate.cpp vendor/clang/dist/lib/Sema/SemaTemplateDeduction.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiate.cpp vendor/clang/dist/lib/Sema/SemaType.cpp vendor/clang/dist/lib/Sema/TreeTransform.h vendor/clang/dist/test/Analysis/CFDateGC.m vendor/clang/dist/test/Analysis/NSString.m vendor/clang/dist/test/Analysis/PR2599.m vendor/clang/dist/test/Analysis/casts.c vendor/clang/dist/test/Analysis/dead-stores.c vendor/clang/dist/test/Analysis/misc-ps-ranges.m vendor/clang/dist/test/Analysis/misc-ps-region-store.cpp vendor/clang/dist/test/Analysis/misc-ps-region-store.m vendor/clang/dist/test/Analysis/misc-ps.m vendor/clang/dist/test/Analysis/rdar-6442306-1.m vendor/clang/dist/test/Analysis/retain-release-basic-store.m vendor/clang/dist/test/Analysis/retain-release-region-store.m vendor/clang/dist/test/Analysis/retain-release.m vendor/clang/dist/test/Analysis/stack-addr-ps.c vendor/clang/dist/test/Analysis/uninit-vals-ps-region.c vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.typedef/p4.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp vendor/clang/dist/test/CXX/temp/temp.decls/temp.class/temp.static/p1-inst.cpp vendor/clang/dist/test/CXX/temp/temp.decls/temp.class/temp.static/p1.cpp vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.arg.explicit/p3.cpp vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p3.cpp vendor/clang/dist/test/CXX/temp/temp.param/p3.cpp vendor/clang/dist/test/CXX/temp/temp.spec/temp.expl.spec/p15.cpp vendor/clang/dist/test/CXX/temp/temp.spec/temp.expl.spec/p4.cpp vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p1.cpp vendor/clang/dist/test/CodeCompletion/enum-switch-case-qualified.cpp vendor/clang/dist/test/CodeCompletion/enum-switch-case.c vendor/clang/dist/test/CodeCompletion/enum-switch-case.cpp vendor/clang/dist/test/CodeCompletion/macros.c vendor/clang/dist/test/CodeCompletion/member-access.cpp vendor/clang/dist/test/CodeCompletion/namespace-alias.cpp vendor/clang/dist/test/CodeCompletion/namespace.cpp vendor/clang/dist/test/CodeCompletion/nested-name-specifier.cpp vendor/clang/dist/test/CodeCompletion/objc-message.m vendor/clang/dist/test/CodeCompletion/operator.cpp vendor/clang/dist/test/CodeCompletion/ordinary-name.c vendor/clang/dist/test/CodeCompletion/tag.c vendor/clang/dist/test/CodeCompletion/tag.cpp vendor/clang/dist/test/CodeCompletion/truncation.c vendor/clang/dist/test/CodeCompletion/using-namespace.cpp vendor/clang/dist/test/CodeCompletion/using.cpp vendor/clang/dist/test/CodeGen/complex.c vendor/clang/dist/test/CodeGen/ext-vector.c vendor/clang/dist/test/CodeGen/libcalls.c vendor/clang/dist/test/CodeGen/object-size.c vendor/clang/dist/test/CodeGenCXX/attr.cpp vendor/clang/dist/test/CodeGenCXX/condition.cpp vendor/clang/dist/test/CodeGenCXX/constructor-template.cpp vendor/clang/dist/test/CodeGenCXX/copy-assign-synthesis-3.cpp vendor/clang/dist/test/CodeGenCXX/default-constructor-default-argument.cpp vendor/clang/dist/test/CodeGenCXX/default-destructor-synthesis.cpp vendor/clang/dist/test/CodeGenCXX/delete-two-arg.cpp vendor/clang/dist/test/CodeGenCXX/dyncast.cpp vendor/clang/dist/test/CodeGenCXX/eh.cpp vendor/clang/dist/test/CodeGenCXX/expr.cpp vendor/clang/dist/test/CodeGenCXX/mangle.cpp vendor/clang/dist/test/CodeGenCXX/member-function-pointers.cpp vendor/clang/dist/test/CodeGenCXX/reference-init.cpp vendor/clang/dist/test/CodeGenCXX/virt.cpp vendor/clang/dist/test/CodeGenCXX/virtual-destructor-calls.cpp vendor/clang/dist/test/CodeGenCXX/vtable-key-function.cpp vendor/clang/dist/test/CodeGenCXX/vtable-linkage.cpp vendor/clang/dist/test/Coverage/ast-printing.c vendor/clang/dist/test/Coverage/ast-printing.cpp vendor/clang/dist/test/Coverage/c-language-features.inc vendor/clang/dist/test/Driver/analyze.c vendor/clang/dist/test/Driver/clang_f_opts.c vendor/clang/dist/test/FixIt/typo.c vendor/clang/dist/test/FixIt/typo.cpp vendor/clang/dist/test/FixIt/typo.m vendor/clang/dist/test/Index/TestClassDecl.m vendor/clang/dist/test/Index/c-index-api-loadTU-test.m vendor/clang/dist/test/Index/c-index-getCursor-test.m vendor/clang/dist/test/Index/code-completion.cpp vendor/clang/dist/test/Index/complete-at-directives.m vendor/clang/dist/test/Index/complete-at-exprstmt.m vendor/clang/dist/test/Index/complete-objc-message.m vendor/clang/dist/test/Lexer/numeric-literal-trash.c vendor/clang/dist/test/Parser/cxx0x-literal-operators.cpp vendor/clang/dist/test/Preprocessor/init.c vendor/clang/dist/test/Preprocessor/stdint.c vendor/clang/dist/test/Sema/anonymous-struct-union.c vendor/clang/dist/test/Sema/attr-noreturn.c vendor/clang/dist/test/Sema/attr-section.c vendor/clang/dist/test/Sema/block-labels.c vendor/clang/dist/test/Sema/block-misc.c vendor/clang/dist/test/Sema/block-return.c vendor/clang/dist/test/Sema/compare.c vendor/clang/dist/test/Sema/complex-int.c vendor/clang/dist/test/Sema/conditional.c vendor/clang/dist/test/Sema/conversion.c vendor/clang/dist/test/Sema/declspec.c vendor/clang/dist/test/Sema/enum.c vendor/clang/dist/test/Sema/exprs.c vendor/clang/dist/test/Sema/format-strings.c vendor/clang/dist/test/Sema/i-c-e.c vendor/clang/dist/test/Sema/implicit-builtin-decl.c vendor/clang/dist/test/Sema/implicit-decl.c vendor/clang/dist/test/Sema/invalid-decl.c vendor/clang/dist/test/Sema/ms-fuzzy-asm.c vendor/clang/dist/test/Sema/overloadable.c vendor/clang/dist/test/Sema/parentheses.c vendor/clang/dist/test/Sema/self-comparison.c vendor/clang/dist/test/Sema/switch.c vendor/clang/dist/test/Sema/unused-expr.c vendor/clang/dist/test/Sema/var-redecl.c vendor/clang/dist/test/SemaCXX/aggregate-initialization.cpp vendor/clang/dist/test/SemaCXX/ambig-user-defined-conversions.cpp vendor/clang/dist/test/SemaCXX/attr-unavailable.cpp vendor/clang/dist/test/SemaCXX/builtin-ptrtomember-overload-1.cpp vendor/clang/dist/test/SemaCXX/composite-pointer-type.cpp vendor/clang/dist/test/SemaCXX/condition.cpp vendor/clang/dist/test/SemaCXX/conditional-expr.cpp vendor/clang/dist/test/SemaCXX/constructor-initializer.cpp vendor/clang/dist/test/SemaCXX/conversion-function.cpp vendor/clang/dist/test/SemaCXX/converting-constructor.cpp vendor/clang/dist/test/SemaCXX/copy-initialization.cpp vendor/clang/dist/test/SemaCXX/dcl_init_aggr.cpp vendor/clang/dist/test/SemaCXX/decl-init-ref.cpp vendor/clang/dist/test/SemaCXX/default2.cpp vendor/clang/dist/test/SemaCXX/direct-initializer.cpp vendor/clang/dist/test/SemaCXX/functional-cast.cpp vendor/clang/dist/test/SemaCXX/implicit-virtual-member-functions.cpp vendor/clang/dist/test/SemaCXX/member-pointer.cpp vendor/clang/dist/test/SemaCXX/namespace.cpp vendor/clang/dist/test/SemaCXX/nested-name-spec.cpp vendor/clang/dist/test/SemaCXX/overload-call.cpp vendor/clang/dist/test/SemaCXX/overload-member-call.cpp vendor/clang/dist/test/SemaCXX/overloaded-builtin-operators.cpp vendor/clang/dist/test/SemaCXX/overloaded-operator.cpp vendor/clang/dist/test/SemaCXX/rval-references.cpp vendor/clang/dist/test/SemaCXX/virtual-member-functions-key-function.cpp vendor/clang/dist/test/SemaCXX/warn-assignment-condition.cpp vendor/clang/dist/test/SemaObjC/bad-receiver-1.m vendor/clang/dist/test/SemaObjC/category-1.m vendor/clang/dist/test/SemaObjC/ivar-access-package.m vendor/clang/dist/test/SemaObjC/nonnull.m vendor/clang/dist/test/SemaObjC/property-9.m vendor/clang/dist/test/SemaObjC/protocol-archane.m vendor/clang/dist/test/SemaObjC/undef-class-messagin-error.m vendor/clang/dist/test/SemaObjC/undef-superclass-1.m vendor/clang/dist/test/SemaTemplate/ambiguous-ovl-print.cpp vendor/clang/dist/test/SemaTemplate/constructor-template.cpp vendor/clang/dist/test/SemaTemplate/default-expr-arguments.cpp vendor/clang/dist/test/SemaTemplate/explicit-instantiation.cpp vendor/clang/dist/test/SemaTemplate/fun-template-def.cpp vendor/clang/dist/test/SemaTemplate/function-template-specialization.cpp vendor/clang/dist/test/SemaTemplate/injected-class-name.cpp vendor/clang/dist/test/SemaTemplate/instantiate-expr-4.cpp vendor/clang/dist/test/SemaTemplate/instantiate-member-class.cpp vendor/clang/dist/test/SemaTemplate/instantiate-member-expr.cpp vendor/clang/dist/test/SemaTemplate/instantiate-static-var.cpp vendor/clang/dist/test/SemaTemplate/instantiate-subscript.cpp vendor/clang/dist/test/SemaTemplate/temp_class_spec.cpp vendor/clang/dist/test/SemaTemplate/virtual-member-functions.cpp vendor/clang/dist/tools/CIndex/CIndex.cpp vendor/clang/dist/tools/CIndex/CIndex.exports vendor/clang/dist/tools/CIndex/CMakeLists.txt vendor/clang/dist/tools/c-index-test/c-index-test.c vendor/clang/dist/tools/driver/cc1_main.cpp vendor/clang/dist/utils/clang-completion-mode.el Modified: vendor/clang/dist/LICENSE.TXT ============================================================================== --- vendor/clang/dist/LICENSE.TXT Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/LICENSE.TXT Fri Jan 15 15:39:40 2010 (r202379) @@ -4,7 +4,7 @@ LLVM Release License University of Illinois/NCSA Open Source License -Copyright (c) 2007-2009 University of Illinois at Urbana-Champaign. +Copyright (c) 2007-2010 University of Illinois at Urbana-Champaign. All rights reserved. Developed by: Modified: vendor/clang/dist/docs/InternalsManual.html ============================================================================== --- vendor/clang/dist/docs/InternalsManual.html Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/docs/InternalsManual.html Fri Jan 15 15:39:40 2010 (r202379) @@ -289,7 +289,7 @@ Clang:

Example:"must be a %select{unary|binary|unary or binary}2 operator" Class:Integers -Description:This format specifier is used to merge multiple +Description:

This format specifier is used to merge multiple related diagnostics together into one common one, without requiring the difference to be specified as an English string argument. Instead of specifying the string, the diagnostic gets an integer argument and the @@ -298,7 +298,8 @@ Clang:

it is 1 it prints 'binary' if it is 2, it prints 'unary or binary'. This allows other language translations to substitute reasonable words (or entire phrases) based on the semantics of the diagnostic instead of having to do - things textually. + things textually.

+

The selected string does undergo formatting.

"plural" format Example:"you have %1 %plural{1:mouse|:mice}1 connected to @@ -330,6 +331,15 @@ Clang:

abort, as will a failure to match the argument against any expression.

+"ordinal" format +Example:"ambiguity in %ordinal0 argument" +Class:Integers +Description:

This is a formatter which represents the + argument number as an ordinal: the value 1 becomes 1st, + 3 becomes 3rd, and so on. Values less than 1 + are not supported.

+

This formatter is currently hard-coded to use English ordinals.

+ "objcclass" format Example:"method %objcclass0 not found" Class:DeclarationName Modified: vendor/clang/dist/docs/LanguageExtensions.html ============================================================================== --- vendor/clang/dist/docs/LanguageExtensions.html Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/docs/LanguageExtensions.html Fri Jan 15 15:39:40 2010 (r202379) @@ -28,6 +28,19 @@ td {
  • C++ exceptions
  • C++ RTTI
  • +
  • Checks for Upcoming Standard Language Features
  • +
  • Blocks
  • Function Overloading in C
  • Builtin Functions @@ -216,6 +229,70 @@ example, compiling code with -fexcep compiling code with -fno-rtti disables the use of RTTI.

    +

    Checks for Upcoming Standard Language Features

    + + +

    The __has_feature macro can be used to query if certain upcoming +standard language features are enabled. Those features are listed here.

    + +

    Currently, all features listed here are slated for inclusion in the upcoming +C++0x standard. As a result, all the features that clang supports are enabled +with the -std=c++0x option when compiling C++ code. Features that are +not yet implemented will be noted.

    + +

    C++0x decltype()

    + +

    Use __has_feature(cxx_decltype) to determine if support for the +decltype() specifier is enabled.

    + +

    C++0x attributes

    + +

    Use __has_feature(cxx_attributes) to determine if support for +attribute parsing with C++0x's square bracket notation is enabled. + +

    C++0x deleted functions

    + +

    Use __has_feature(cxx_deleted_functions) to determine if support for +deleted function definitions (with = delete) is enabled. + +

    C++ TR concepts

    + +

    Use __has_feature(cxx_lambdas) to determine if support for +concepts is enabled. clang does not currently implement this feature. + +

    C++0x lambdas

    + +

    Use __has_feature(cxx_lambdas) to determine if support for +lambdas is enabled. clang does not currently implement this feature. + +

    C++0x nullptr

    + +

    Use __has_feature(cxx_nullptr) to determine if support for +nullptr is enabled. clang does not yet fully implement this feature. + +

    C++0x rvalue references

    + +

    Use __has_feature(cxx_rvalue_references) to determine if support for +rvalue references is enabled. clang does not yet fully implement this feature. + +

    C++0x static_assert()

    + +

    Use __has_feature(cxx_static_assert) to determine if support for +compile-time assertions using static_assert is enabled.

    + +

    C++0x type inference

    + +

    Use __has_feature(cxx_auto_type) to determine C++0x type inference +is supported using the auto specifier. If this is disabled, +auto will instead be a storage class specifier, as in C or C++98.

    + +

    C++0x variadic templates

    + +

    Use __has_feature(cxx_variadic_templates) to determine if support +for templates taking any number of arguments with the ellipsis notation is +enabled. clang does not yet fully implement this feature.

    + +

    Blocks

    Modified: vendor/clang/dist/examples/PrintFunctionNames/README.txt ============================================================================== --- vendor/clang/dist/examples/PrintFunctionNames/README.txt Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/examples/PrintFunctionNames/README.txt Fri Jan 15 15:39:40 2010 (r202379) @@ -6,5 +6,5 @@ TOOL_NO_EXPORT in the tools/clang Makefi Once the plugin is built, you can run it using: -- -$ clang -cc1 -load path/to/PrintFunctionNames.so -plugin=print-fns some-input-file.c +$ clang -cc1 -load path/to/PrintFunctionNames.so -plugin print-fns some-input-file.c -- Modified: vendor/clang/dist/include/clang-c/Index.h ============================================================================== --- vendor/clang/dist/include/clang-c/Index.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang-c/Index.h Fri Jan 15 15:39:40 2010 (r202379) @@ -139,10 +139,14 @@ typedef struct { enum CXCursorKind kind; CXDecl decl; CXStmt stmt; /* expression reference */ + CXDecl referringDecl; } CXCursor; /* A unique token for looking up "visible" CXDecls from a CXTranslationUnit. */ -typedef void *CXEntity; +typedef struct { + CXIndex index; + void *data; +} CXEntity; /** * For functions returning a string that might or might not need @@ -321,20 +325,40 @@ CINDEX_LINKAGE time_t clang_getFileTime( /* * CXEntity Operations. */ -CINDEX_LINKAGE const char *clang_getDeclarationName(CXEntity); -CINDEX_LINKAGE const char *clang_getURI(CXEntity); -CINDEX_LINKAGE CXEntity clang_getEntity(const char *URI); + +/* clang_getDeclaration() maps from a CXEntity to the matching CXDecl (if any) + * in a specified translation unit. */ +CINDEX_LINKAGE CXDecl clang_getDeclaration(CXEntity, CXTranslationUnit); + /* * CXDecl Operations. */ CINDEX_LINKAGE CXCursor clang_getCursorFromDecl(CXDecl); -CINDEX_LINKAGE CXEntity clang_getEntityFromDecl(CXDecl); +CINDEX_LINKAGE CXEntity clang_getEntityFromDecl(CXIndex, CXDecl); CINDEX_LINKAGE CXString clang_getDeclSpelling(CXDecl); CINDEX_LINKAGE unsigned clang_getDeclLine(CXDecl); CINDEX_LINKAGE unsigned clang_getDeclColumn(CXDecl); +CINDEX_LINKAGE CXString clang_getDeclUSR(CXDecl); CINDEX_LINKAGE const char *clang_getDeclSource(CXDecl); /* deprecate */ CINDEX_LINKAGE CXFile clang_getDeclSourceFile(CXDecl); +typedef struct CXSourceLineColumn { + unsigned line; + unsigned column; +} CXSourceLineColumn; + +typedef struct CXDeclExtent { + CXSourceLineColumn begin; + CXSourceLineColumn end; +} CXSourceExtent; + +/* clang_getDeclExtent() returns the physical extent of a declaration. The + * beginning line/column pair points to the start of the first token in the + * declaration, and the ending line/column pair points to the last character in + * the last token of the declaration. + */ +CINDEX_LINKAGE CXSourceExtent clang_getDeclExtent(CXDecl); + /* * CXCursor Operations. */ @@ -564,7 +588,28 @@ enum CXCompletionChunkKind { * the text buffer. Rather, it is meant to illustrate the type that an * expression using the given completion string would have. */ - CXCompletionChunk_ResultType + CXCompletionChunk_ResultType, + /** + * \brief A colon (':'). + */ + CXCompletionChunk_Colon, + /** + * \brief A semicolon (';'). + */ + CXCompletionChunk_SemiColon, + /** + * \brief An '=' sign. + */ + CXCompletionChunk_Equal, + /** + * Horizontal space (' '). + */ + CXCompletionChunk_HorizontalSpace, + /** + * Vertical space ('\n'), after which it is generally a good idea to + * perform indentation. + */ + CXCompletionChunk_VerticalSpace }; /** Modified: vendor/clang/dist/include/clang/AST/APValue.h ============================================================================== --- vendor/clang/dist/include/clang/AST/APValue.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/APValue.h Fri Jan 15 15:39:40 2010 (r202379) @@ -18,6 +18,7 @@ #include "llvm/ADT/APFloat.h" namespace clang { + class CharUnits; class Expr; /// APValue - This class implements a discriminated union of [uninitialized] @@ -47,10 +48,6 @@ private: ComplexAPFloat() : Real(0.0), Imag(0.0) {} }; - struct LV { - Expr* Base; - uint64_t Offset; - }; struct Vec { APValue *Elts; unsigned NumElts; @@ -88,9 +85,11 @@ public: APValue(const APValue &RHS) : Kind(Uninitialized) { *this = RHS; } - APValue(Expr* B, uint64_t O) : Kind(Uninitialized) { + APValue(Expr* B, const CharUnits &O) : Kind(Uninitialized) { MakeLValue(); setLValue(B, O); } + APValue(Expr* B); + ~APValue() { MakeUninit(); } @@ -164,14 +163,8 @@ public: return const_cast(this)->getComplexFloatImag(); } - Expr* getLValueBase() const { - assert(isLValue() && "Invalid accessor"); - return ((const LV*)(const void*)Data)->Base; - } - uint64_t getLValueOffset() const { - assert(isLValue() && "Invalid accessor"); - return ((const LV*)(const void*)Data)->Offset; - } + Expr* getLValueBase() const; + CharUnits getLValueOffset() const; void setInt(const APSInt &I) { assert(isInt() && "Invalid accessor"); @@ -202,11 +195,7 @@ public: ((ComplexAPFloat*)(char*)Data)->Real = R; ((ComplexAPFloat*)(char*)Data)->Imag = I; } - void setLValue(Expr *B, uint64_t O) { - assert(isLValue() && "Invalid accessor"); - ((LV*)(char*)Data)->Base = B; - ((LV*)(char*)Data)->Offset = O; - } + void setLValue(Expr *B, const CharUnits &O); const APValue &operator=(const APValue &RHS); @@ -237,11 +226,7 @@ private: new ((void*)(char*)Data) ComplexAPFloat(); Kind = ComplexFloat; } - void MakeLValue() { - assert(isUninit() && "Bad state change"); - new ((void*)(char*)Data) LV(); - Kind = LValue; - } + void MakeLValue(); }; inline llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const APValue &V) { Modified: vendor/clang/dist/include/clang/AST/ASTContext.h ============================================================================== --- vendor/clang/dist/include/clang/AST/ASTContext.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/ASTContext.h Fri Jan 15 15:39:40 2010 (r202379) @@ -699,8 +699,8 @@ public: ObjCProtocolDecl *rProto); /// getObjCEncodingTypeSize returns size of type for objective-c encoding - /// purpose. - int getObjCEncodingTypeSize(QualType t); + /// purpose in characters. + CharUnits getObjCEncodingTypeSize(QualType t); /// This setter/getter represents the ObjC 'id' type. It is setup lazily, by /// Sema. id is always a (typedef for a) pointer type, a pointer to a struct. @@ -898,17 +898,18 @@ public: return getCanonicalType(T1) == getCanonicalType(T2); } - /// \brief Returns this type as a completely-unqualified array type, capturing - /// the qualifiers in Quals. This only operates on canonical types in order - /// to ensure the ArrayType doesn't itself have qualifiers. + /// \brief Returns this type as a completely-unqualified array type, + /// capturing the qualifiers in Quals. This will remove the minimal amount of + /// sugaring from the types, similar to the behavior of + /// QualType::getUnqualifiedType(). /// - /// \param T is the canonicalized QualType, which may be an ArrayType + /// \param T is the qualified type, which may be an ArrayType /// /// \param Quals will receive the full set of qualifiers that were - /// applied to the element type of the array. + /// applied to the array. /// /// \returns if this is an array type, the completely unqualified array type - /// that corresponds to it. Otherwise, returns this->getUnqualifiedType(). + /// that corresponds to it. Otherwise, returns T.getUnqualifiedType(). QualType getUnqualifiedArrayType(QualType T, Qualifiers &Quals); /// \brief Determine whether the given types are equivalent after @@ -996,7 +997,10 @@ public: const IncompleteArrayType *getAsIncompleteArrayType(QualType T) { return dyn_cast_or_null(getAsArrayType(T)); } - + const DependentSizedArrayType *getAsDependentSizedArrayType(QualType T) { + return dyn_cast_or_null(getAsArrayType(T)); + } + /// getBaseElementType - Returns the innermost element type of an array type. /// For example, will return "int" for int[m][n] QualType getBaseElementType(const ArrayType *VAT); Modified: vendor/clang/dist/include/clang/AST/Attr.h ============================================================================== --- vendor/clang/dist/include/clang/AST/Attr.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/Attr.h Fri Jan 15 15:39:40 2010 (r202379) @@ -55,8 +55,6 @@ public: Cleanup, Const, Constructor, - DLLExport, - DLLImport, Deprecated, Destructor, FastCall, @@ -93,7 +91,12 @@ public: Visibility, WarnUnusedResult, Weak, - WeakImport + WeakImport, + + FIRST_TARGET_ATTRIBUTE, + DLLExport, + DLLImport, + MSP430Interrupt }; private: @@ -158,7 +161,7 @@ public: class ATTR##Attr : public Attr { \ public: \ ATTR##Attr() : Attr(ATTR) {} \ - virtual Attr *clone(ASTContext &C) const { return ::new (C) ATTR##Attr; }\ + virtual Attr *clone(ASTContext &C) const; \ static bool classof(const Attr *A) { return A->getKind() == ATTR; } \ static bool classof(const ATTR##Attr *A) { return true; } \ } @@ -174,9 +177,7 @@ public: /// getAlignment - The specified alignment in bits. unsigned getAlignment() const { return Alignment; } - virtual Attr* clone(ASTContext &C) const { - return ::new (C) PragmaPackAttr(Alignment); - } + virtual Attr* clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { @@ -203,9 +204,7 @@ public: return Alignment; } - virtual Attr* clone(ASTContext &C) const { - return ::new (C) AlignedAttr(Alignment); - } + virtual Attr* clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { @@ -221,7 +220,7 @@ public: const std::string& getAnnotation() const { return Annotation; } - virtual Attr* clone(ASTContext &C) const { return ::new (C) AnnotateAttr(Annotation); } + virtual Attr* clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { @@ -237,7 +236,7 @@ public: const std::string& getLabel() const { return Label; } - virtual Attr* clone(ASTContext &C) const { return ::new (C) AsmLabelAttr(Label); } + virtual Attr* clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { @@ -255,7 +254,7 @@ public: const std::string& getAliasee() const { return Aliasee; } - virtual Attr *clone(ASTContext &C) const { return ::new (C) AliasAttr(Aliasee); } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { return A->getKind() == Alias; } @@ -269,7 +268,7 @@ public: int getPriority() const { return priority; } - virtual Attr *clone(ASTContext &C) const { return ::new (C) ConstructorAttr(priority); } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { return A->getKind() == Constructor; } @@ -283,7 +282,7 @@ public: int getPriority() const { return priority; } - virtual Attr *clone(ASTContext &C) const { return ::new (C) DestructorAttr(priority); } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { return A->getKind() == Destructor; } @@ -294,7 +293,7 @@ class GNUInlineAttr : public Attr { public: GNUInlineAttr() : Attr(GNUInline) {} - virtual Attr *clone(ASTContext &C) const { return ::new (C) GNUInlineAttr; } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { @@ -307,7 +306,7 @@ class IBOutletAttr : public Attr { public: IBOutletAttr() : Attr(IBOutletKind) {} - virtual Attr *clone(ASTContext &C) const { return ::new (C) IBOutletAttr; } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { @@ -329,7 +328,7 @@ public: const std::string& getName() const { return Name; } - virtual Attr *clone(ASTContext &C) const { return ::new (C) SectionAttr(Name); } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { @@ -374,7 +373,7 @@ public: return ArgNums ? std::binary_search(ArgNums, ArgNums+Size, arg) : true; } - virtual Attr *clone(ASTContext &C) const { return ::new (C) NonNullAttr(ArgNums, Size); } + virtual Attr *clone(ASTContext &C) const; static bool classof(const Attr *A) { return A->getKind() == NonNull; } static bool classof(const NonNullAttr *A) { return true; } @@ -392,9 +391,7 @@ public: int getFormatIdx() const { return formatIdx; } int getFirstArg() const { return firstArg; } - virtual Attr *clone(ASTContext &C) const { - return ::new (C) FormatAttr(Type, formatIdx, firstArg); - } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { return A->getKind() == Format; } @@ -407,9 +404,7 @@ public: FormatArgAttr(int idx) : Attr(FormatArg), formatIdx(idx) {} int getFormatIdx() const { return formatIdx; } - virtual Attr *clone(ASTContext &C) const { - return ::new (C) FormatArgAttr(formatIdx); - } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { return A->getKind() == FormatArg; } @@ -424,9 +419,7 @@ public: int getSentinel() const { return sentinel; } int getNullPos() const { return NullPos; } - virtual Attr *clone(ASTContext &C) const { - return ::new (C) SentinelAttr(sentinel, NullPos); - } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { return A->getKind() == Sentinel; } @@ -449,15 +442,13 @@ public: VisibilityTypes getVisibility() const { return VisibilityType; } - virtual Attr *clone(ASTContext &C) const { return ::new (C) VisibilityAttr(VisibilityType); } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { return A->getKind() == Visibility; } static bool classof(const VisibilityAttr *A) { return true; } }; -DEF_SIMPLE_ATTR(DLLImport); -DEF_SIMPLE_ATTR(DLLExport); DEF_SIMPLE_ATTR(FastCall); DEF_SIMPLE_ATTR(StdCall); DEF_SIMPLE_ATTR(CDecl); @@ -471,9 +462,7 @@ public: virtual bool isMerged() const { return false; } - virtual Attr *clone(ASTContext &C) const { - return ::new (C) OverloadableAttr; - } + virtual Attr *clone(ASTContext &C) const; static bool classof(const Attr *A) { return A->getKind() == Overloadable; } static bool classof(const OverloadableAttr *) { return true; } @@ -491,7 +480,7 @@ public: BlocksAttrTypes getType() const { return BlocksAttrType; } - virtual Attr *clone(ASTContext &C) const { return ::new (C) BlocksAttr(BlocksAttrType); } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { return A->getKind() == Blocks; } @@ -508,7 +497,7 @@ public: const FunctionDecl *getFunctionDecl() const { return FD; } - virtual Attr *clone(ASTContext &C) const { return ::new (C) CleanupAttr(FD); } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { return A->getKind() == Cleanup; } @@ -527,9 +516,7 @@ public: unsigned getNumParams() const { return NumParams; } - virtual Attr *clone(ASTContext &C) const { - return ::new (C) RegparmAttr(NumParams); - } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { return A->getKind() == Regparm; } @@ -546,9 +533,7 @@ public: unsigned getYDim() const { return Y; } unsigned getZDim() const { return Z; } - virtual Attr *clone(ASTContext &C) const { - return ::new (C) ReqdWorkGroupSizeAttr(X, Y, Z); - } + virtual Attr *clone(ASTContext &C) const; // Implement isa/cast/dyncast/etc. static bool classof(const Attr *A) { @@ -566,6 +551,25 @@ DEF_SIMPLE_ATTR(BaseCheck); DEF_SIMPLE_ATTR(Hiding); DEF_SIMPLE_ATTR(Override); +// Target-specific attributes +DEF_SIMPLE_ATTR(DLLImport); +DEF_SIMPLE_ATTR(DLLExport); + +class MSP430InterruptAttr : public Attr { + unsigned Number; + +public: + MSP430InterruptAttr(unsigned n) : Attr(MSP430Interrupt), Number(n) {} + + unsigned getNumber() const { return Number; } + + virtual Attr *clone(ASTContext &C) const; + + // Implement isa/cast/dyncast/etc. + static bool classof(const Attr *A) { return A->getKind() == MSP430Interrupt; } + static bool classof(const MSP430InterruptAttr *A) { return true; } +}; + #undef DEF_SIMPLE_ATTR } // end namespace clang Modified: vendor/clang/dist/include/clang/AST/CharUnits.h ============================================================================== --- vendor/clang/dist/include/clang/AST/CharUnits.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/CharUnits.h Fri Jan 15 15:39:40 2010 (r202379) @@ -36,12 +36,12 @@ namespace clang { /// in character units. class CharUnits { public: - typedef int64_t RawType; + typedef int64_t QuantityType; private: - RawType Quantity; + QuantityType Quantity; - explicit CharUnits(RawType C) : Quantity(C) {} + explicit CharUnits(QuantityType C) : Quantity(C) {} public: @@ -58,8 +58,8 @@ namespace clang { return CharUnits(1); } - /// fromRaw - Construct a CharUnits quantity from a raw integer type. - static CharUnits fromRaw(RawType Quantity) { + /// fromQuantity - Construct a CharUnits quantity from a raw integer type. + static CharUnits fromQuantity(QuantityType Quantity) { return CharUnits(Quantity); } @@ -103,26 +103,26 @@ namespace clang { /// isOne - Test whether the quantity equals one. bool isOne() const { return Quantity == 1; } - /// isPositive - Test whether the quanity is greater than zero. + /// isPositive - Test whether the quantity is greater than zero. bool isPositive() const { return Quantity > 0; } /// isNegative - Test whether the quantity is less than zero. bool isNegative() const { return Quantity < 0; } // Arithmetic operators. - CharUnits operator* (RawType N) const { + CharUnits operator* (QuantityType N) const { return CharUnits(Quantity * N); } - CharUnits operator/ (RawType N) const { + CharUnits operator/ (QuantityType N) const { return CharUnits(Quantity / N); } - RawType operator/ (const CharUnits &Other) const { + QuantityType operator/ (const CharUnits &Other) const { return Quantity / Other.Quantity; } - CharUnits operator% (RawType N) const { + CharUnits operator% (QuantityType N) const { return CharUnits(Quantity % N); } - RawType operator% (const CharUnits &Other) const { + QuantityType operator% (const CharUnits &Other) const { return Quantity % Other.Quantity; } CharUnits operator+ (const CharUnits &Other) const { @@ -134,14 +134,14 @@ namespace clang { // Conversions. - /// getRaw - Get the raw integer representation of this quantity. - RawType getRaw() const { return Quantity; } + /// getQuantity - Get the raw integer representation of this quantity. + QuantityType getQuantity() const { return Quantity; } }; // class CharUnit } // namespace clang -inline clang::CharUnits operator* (clang::CharUnits::RawType Scale, +inline clang::CharUnits operator* (clang::CharUnits::QuantityType Scale, const clang::CharUnits &CU) { return CU * Scale; } Modified: vendor/clang/dist/include/clang/AST/Decl.h ============================================================================== --- vendor/clang/dist/include/clang/AST/Decl.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/Decl.h Fri Jan 15 15:39:40 2010 (r202379) @@ -1184,6 +1184,8 @@ public: OverloadedOperatorKind getOverloadedOperator() const; + const IdentifierInfo *getLiteralIdentifier() const; + /// \brief If this function is an instantiation of a member function /// of a class template specialization, retrieves the function from /// which it was instantiated. Modified: vendor/clang/dist/include/clang/AST/DeclCXX.h ============================================================================== --- vendor/clang/dist/include/clang/AST/DeclCXX.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/DeclCXX.h Fri Jan 15 15:39:40 2010 (r202379) @@ -393,6 +393,9 @@ public: return reverse_base_class_const_iterator(vbases_begin()); } + /// \brief Determine whether this class has any dependent base classes. + bool hasAnyDependentBases() const; + /// Iterator access to method members. The method iterator visits /// all method members of the class, including non-instance methods, /// special methods, etc. Modified: vendor/clang/dist/include/clang/AST/DeclObjC.h ============================================================================== --- vendor/clang/dist/include/clang/AST/DeclObjC.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/DeclObjC.h Fri Jan 15 15:39:40 2010 (r202379) @@ -289,7 +289,9 @@ struct ObjCMethodList { /// ObjCProtocolDecl, and ObjCImplDecl. /// class ObjCContainerDecl : public NamedDecl, public DeclContext { - SourceLocation AtEndLoc; // marks the end of the method container. + // These two locations in the range mark the end of the method container. + // The first points to the '@' token, and the second to the 'end' token. + SourceRange AtEnd; public: ObjCContainerDecl(Kind DK, DeclContext *DC, SourceLocation L, @@ -351,11 +353,15 @@ public: IdentifierInfo *PropertyId) const; // Marks the end of the container. - SourceLocation getAtEndLoc() const { return AtEndLoc; } - void setAtEndLoc(SourceLocation L) { AtEndLoc = L; } + SourceRange getAtEndRange() const { + return AtEnd; + } + void setAtEndRange(SourceRange atEnd) { + AtEnd = atEnd; + } virtual SourceRange getSourceRange() const { - return SourceRange(getLocation(), getAtEndLoc()); + return SourceRange(getLocation(), getAtEndRange().getEnd()); } // Implement isa/cast/dyncast/etc. Modified: vendor/clang/dist/include/clang/AST/DeclarationName.h ============================================================================== --- vendor/clang/dist/include/clang/AST/DeclarationName.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/DeclarationName.h Fri Jan 15 15:39:40 2010 (r202379) @@ -190,6 +190,14 @@ public: /// getNameKind - Determine what kind of name this is. NameKind getNameKind() const; + /// \brief Determines whether the name itself is dependent, e.g., because it + /// involves a C++ type that is itself dependent. + /// + /// Note that this does not capture all of the notions of "dependent name", + /// because an identifier can be a dependent name if it is used as the + /// callee in a call expression with dependent arguments. + bool isDependentName() const; + /// getName - Retrieve the human-readable string for this name. std::string getAsString() const; @@ -301,6 +309,7 @@ inline bool operator>=(DeclarationName L class DeclarationNameTable { void *CXXSpecialNamesImpl; // Actually a FoldingSet * CXXOperatorIdName *CXXOperatorNames; // Operator names + void *CXXLiteralOperatorNames; // Actually a FoldingSet<...> * DeclarationNameTable(const DeclarationNameTable&); // NONCOPYABLE DeclarationNameTable& operator=(const DeclarationNameTable&); // NONCOPYABLE Modified: vendor/clang/dist/include/clang/AST/Expr.h ============================================================================== --- vendor/clang/dist/include/clang/AST/Expr.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/Expr.h Fri Jan 15 15:39:40 2010 (r202379) @@ -241,6 +241,11 @@ public: /// stack based objects. bool EvaluateAsAny(EvalResult &Result, ASTContext &Ctx) const; + /// EvaluateAsBooleanCondition - Return true if this is a constant + /// which we we can fold and convert to a boolean condition using + /// any crazy technique that we want to. + bool EvaluateAsBooleanCondition(bool &Result, ASTContext &Ctx) const; + /// isEvaluatable - Call Evaluate to see if this expression can be constant /// folded, but discard the result. bool isEvaluatable(ASTContext &Ctx) const; @@ -2552,7 +2557,7 @@ private: unsigned NumSubExprs : 16; - DesignatedInitExpr(QualType Ty, unsigned NumDesignators, + DesignatedInitExpr(ASTContext &C, QualType Ty, unsigned NumDesignators, const Designator *Designators, SourceLocation EqualOrColonLoc, bool GNUSyntax, Expr **IndexExprs, unsigned NumIndexExprs, @@ -2565,6 +2570,8 @@ private: protected: virtual void DoDestroy(ASTContext &C); + void DestroyDesignators(ASTContext &C); + public: /// A field designator, e.g., ".x". struct FieldDesignator { @@ -2732,7 +2739,8 @@ public: Designator *getDesignator(unsigned Idx) { return &designators_begin()[Idx]; } - void setDesignators(const Designator *Desigs, unsigned NumDesigs); + void setDesignators(ASTContext &C, const Designator *Desigs, + unsigned NumDesigs); Expr *getArrayIndex(const Designator& D); Expr *getArrayRangeStart(const Designator& D); @@ -2779,7 +2787,7 @@ public: /// \brief Replaces the designator at index @p Idx with the series /// of designators in [First, Last). - void ExpandDesignator(unsigned Idx, const Designator *First, + void ExpandDesignator(ASTContext &C, unsigned Idx, const Designator *First, const Designator *Last); virtual SourceRange getSourceRange() const; Modified: vendor/clang/dist/include/clang/AST/ExprCXX.h ============================================================================== --- vendor/clang/dist/include/clang/AST/ExprCXX.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/ExprCXX.h Fri Jan 15 15:39:40 2010 (r202379) @@ -324,17 +324,21 @@ public: /// @endcode class CXXThisExpr : public Expr { SourceLocation Loc; - + bool Implicit : 1; + public: - CXXThisExpr(SourceLocation L, QualType Type) + CXXThisExpr(SourceLocation L, QualType Type, bool isImplicit) : Expr(CXXThisExprClass, Type, // 'this' is type-dependent if the class type of the enclosing // member function is dependent (C++ [temp.dep.expr]p2) Type->isDependentType(), Type->isDependentType()), - Loc(L) { } + Loc(L), Implicit(isImplicit) { } virtual SourceRange getSourceRange() const { return SourceRange(Loc); } + bool isImplicit() const { return Implicit; } + void setImplicit(bool I) { Implicit = I; } + static bool classof(const Stmt *T) { return T->getStmtClass() == CXXThisExprClass; } Modified: vendor/clang/dist/include/clang/AST/Stmt.h ============================================================================== --- vendor/clang/dist/include/clang/AST/Stmt.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/Stmt.h Fri Jan 15 15:39:40 2010 (r202379) @@ -1116,6 +1116,7 @@ class AsmStmt : public Stmt { bool IsSimple; bool IsVolatile; + bool MSAsm; unsigned NumOutputs; unsigned NumInputs; @@ -1126,7 +1127,7 @@ class AsmStmt : public Stmt { llvm::SmallVector Clobbers; public: - AsmStmt(SourceLocation asmloc, bool issimple, bool isvolatile, + AsmStmt(SourceLocation asmloc, bool issimple, bool isvolatile, bool msasm, unsigned numoutputs, unsigned numinputs, std::string *names, StringLiteral **constraints, Expr **exprs, StringLiteral *asmstr, unsigned numclobbers, @@ -1143,7 +1144,9 @@ public: bool isVolatile() const { return IsVolatile; } void setVolatile(bool V) { IsVolatile = V; } bool isSimple() const { return IsSimple; } - void setSimple(bool V) { IsSimple = false; } + void setSimple(bool V) { IsSimple = V; } + bool isMSAsm() const { return MSAsm; } + void setMSAsm(bool V) { MSAsm = V; } //===--- Asm String Analysis ---===// Modified: vendor/clang/dist/include/clang/AST/TypeLoc.h ============================================================================== --- vendor/clang/dist/include/clang/AST/TypeLoc.h Fri Jan 15 15:38:53 2010 (r202378) +++ vendor/clang/dist/include/clang/AST/TypeLoc.h Fri Jan 15 15:39:40 2010 (r202379) @@ -1029,18 +1029,88 @@ class ComplexTypeLoc : public Inheriting ComplexType> { }; -// FIXME: location of the 'typeof' and parens (the expression is -// carried by the type). -class TypeOfExprTypeLoc : public InheritingConcreteTypeLoc { -}; - -// FIXME: location of the 'typeof' and parens; also the TypeSourceInfo -// for the inner type, or (maybe) just express that inline to the TypeLoc. -class TypeOfTypeLoc : public InheritingConcreteTypeLoc { +struct TypeofLocInfo { + SourceLocation TypeofLoc; + SourceLocation LParenLoc; + SourceLocation RParenLoc; +}; + +struct TypeOfExprTypeLocInfo : public TypeofLocInfo { +}; + +struct TypeOfTypeLocInfo : public TypeofLocInfo { + TypeSourceInfo* UnderlyingTInfo; +}; + +template +class TypeofLikeTypeLoc + : public ConcreteTypeLoc { +public: + SourceLocation getTypeofLoc() const { + return this->getLocalData()->TypeofLoc; + } + void setTypeofLoc(SourceLocation Loc) { + this->getLocalData()->TypeofLoc = Loc; + } + + SourceLocation getLParenLoc() const { + return this->getLocalData()->LParenLoc; + } + void setLParenLoc(SourceLocation Loc) { + this->getLocalData()->LParenLoc = Loc; + } + + SourceLocation getRParenLoc() const { + return this->getLocalData()->RParenLoc; + } + void setRParenLoc(SourceLocation Loc) { + this->getLocalData()->RParenLoc = Loc; + } + + SourceRange getParensRange() const { + return SourceRange(getLParenLoc(), getRParenLoc()); + } + void setParensRange(SourceRange range) { + setLParenLoc(range.getBegin()); + setRParenLoc(range.getEnd()); + } + + SourceRange getSourceRange() const { + return SourceRange(getTypeofLoc(), getRParenLoc()); + } + + void initializeLocal(SourceLocation Loc) { + setTypeofLoc(Loc); + setLParenLoc(Loc); + setRParenLoc(Loc); + } +}; + +class TypeOfExprTypeLoc : public TypeofLikeTypeLoc { +public: + Expr* getUnderlyingExpr() const { + return getTypePtr()->getUnderlyingExpr(); + } + // Reimplemented to account for GNU/C++ extension + // typeof unary-expression + // where there are no parentheses. + SourceRange getSourceRange() const; +}; + +class TypeOfTypeLoc + : public TypeofLikeTypeLoc { +public: + QualType getUnderlyingType() const { + return this->getTypePtr()->getUnderlyingType(); + } + TypeSourceInfo* getUnderlyingTInfo() const { + return this->getLocalData()->UnderlyingTInfo; + } + void setUnderlyingTInfo(TypeSourceInfo* TI) const { *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***