svn commit: r198893 - in vendor/clang/dist: . clang.xcodeproj docs
docs/tools include/clang-c include/clang/AST
include/clang/Analysis include/clang/Analysis/PathSensitive
include/clang/Analysis/Pa...
Roman Divacky
rdivacky at FreeBSD.org
Wed Nov 4 15:04:33 UTC 2009
Author: rdivacky
Date: Wed Nov 4 15:04:32 2009
New Revision: 198893
URL: http://svn.freebsd.org/changeset/base/198893
Log:
Update clang to r86025.
Added:
vendor/clang/dist/include/clang/AST/TemplateBase.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/BugType.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/Checkers/
vendor/clang/dist/include/clang/Analysis/PathSensitive/Checkers/AttrNonNullChecker.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/Checkers/BadCallChecker.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/Checkers/DereferenceChecker.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/Checkers/DivZeroChecker.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/Checkers/UndefinedArgChecker.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/Checkers/UndefinedAssignmentChecker.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/Checkers/VLASizeChecker.h
vendor/clang/dist/include/clang/Frontend/DiagnosticOptions.h
vendor/clang/dist/lib/AST/TemplateBase.cpp
vendor/clang/dist/lib/Analysis/AttrNonNullChecker.cpp
vendor/clang/dist/lib/Analysis/BadCallChecker.cpp
vendor/clang/dist/lib/Analysis/DereferenceChecker.cpp
vendor/clang/dist/lib/Analysis/DivZeroChecker.cpp
vendor/clang/dist/lib/Analysis/NSAutoreleasePoolChecker.cpp
vendor/clang/dist/lib/Analysis/NSErrorChecker.cpp
vendor/clang/dist/lib/Analysis/UndefinedArgChecker.cpp
vendor/clang/dist/lib/Analysis/UndefinedAssignmentChecker.cpp
vendor/clang/dist/lib/Analysis/VLASizeChecker.cpp
vendor/clang/dist/lib/CodeGen/CGException.cpp
vendor/clang/dist/test/CXX/dcl.decl/dcl.meaning/dcl.ref/p5.cpp
vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p10.cpp
vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p12.cpp
vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p5.cpp
vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p6.cpp
vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p7.cpp
vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p8.cpp
vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p9-linkage.cpp
vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p9.cpp
vendor/clang/dist/test/CodeCompletion/macros.c
vendor/clang/dist/test/CodeGen/object-size.c
vendor/clang/dist/test/CodeGenCXX/array-construction.cpp
vendor/clang/dist/test/CodeGenCXX/ptr-to-member-function.cpp
vendor/clang/dist/test/FixIt/fixit-pmem.cpp
vendor/clang/dist/test/Parser/cxx-parse-member-pointer-op.cpp
vendor/clang/dist/test/Preprocessor/has_include.c
vendor/clang/dist/test/Preprocessor/init.c
vendor/clang/dist/test/Preprocessor/macro_undef.c
vendor/clang/dist/test/Preprocessor/stdint.c
vendor/clang/dist/test/Sema/parentheses.c
vendor/clang/dist/test/SemaCXX/ptrtomember-badcall.cpp
vendor/clang/dist/test/SemaCXX/value-initialization.cpp
vendor/clang/dist/test/SemaObjC/conditional-expr-6.m
vendor/clang/dist/test/SemaObjC/property-category-4.m
vendor/clang/dist/test/SemaTemplate/instantiate-non-type-template-parameter.cpp
vendor/clang/dist/test/SemaTemplate/operator-function-id-template.cpp
vendor/clang/dist/test/SemaTemplate/template-id-expr.cpp
vendor/clang/dist/test/SemaTemplate/template-id-printing.cpp
Deleted:
vendor/clang/dist/lib/Analysis/CheckNSError.cpp
Modified:
vendor/clang/dist/CMakeLists.txt
vendor/clang/dist/clang.xcodeproj/project.pbxproj
vendor/clang/dist/docs/LanguageExtensions.html
vendor/clang/dist/docs/tools/clang.pod
vendor/clang/dist/include/clang-c/Index.h
vendor/clang/dist/include/clang/AST/ASTContext.h
vendor/clang/dist/include/clang/AST/CanonicalType.h
vendor/clang/dist/include/clang/AST/Decl.h
vendor/clang/dist/include/clang/AST/DeclGroup.h
vendor/clang/dist/include/clang/AST/DeclNodes.def
vendor/clang/dist/include/clang/AST/DeclObjC.h
vendor/clang/dist/include/clang/AST/DeclTemplate.h
vendor/clang/dist/include/clang/AST/Expr.h
vendor/clang/dist/include/clang/AST/ExprCXX.h
vendor/clang/dist/include/clang/AST/RecordLayout.h
vendor/clang/dist/include/clang/AST/Redeclarable.h
vendor/clang/dist/include/clang/AST/StmtIterator.h
vendor/clang/dist/include/clang/AST/StmtNodes.def
vendor/clang/dist/include/clang/AST/TemplateName.h
vendor/clang/dist/include/clang/AST/Type.h
vendor/clang/dist/include/clang/AST/TypeLoc.h
vendor/clang/dist/include/clang/Analysis/CallGraph.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/AnalysisContext.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/BugReporter.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/Checker.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/GRTransferFuncs.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/Store.h
vendor/clang/dist/include/clang/Analysis/PathSensitive/SymbolManager.h
vendor/clang/dist/include/clang/Analysis/ProgramPoint.h
vendor/clang/dist/include/clang/Analysis/Visitors/CFGRecStmtDeclVisitor.h
vendor/clang/dist/include/clang/Basic/Builtins.def
vendor/clang/dist/include/clang/Basic/DiagnosticCommonKinds.td
vendor/clang/dist/include/clang/Basic/DiagnosticDriverKinds.td
vendor/clang/dist/include/clang/Basic/DiagnosticFrontendKinds.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/OnDiskHashTable.h
vendor/clang/dist/include/clang/Basic/OperatorKinds.h
vendor/clang/dist/include/clang/Basic/PartialDiagnostic.h
vendor/clang/dist/include/clang/Basic/SourceManager.h
vendor/clang/dist/include/clang/Basic/TargetInfo.h
vendor/clang/dist/include/clang/Driver/Options.def
vendor/clang/dist/include/clang/Frontend/ASTUnit.h
vendor/clang/dist/include/clang/Frontend/CompileOptions.h
vendor/clang/dist/include/clang/Frontend/DeclXML.def
vendor/clang/dist/include/clang/Frontend/InitHeaderSearch.h
vendor/clang/dist/include/clang/Frontend/InitPreprocessor.h
vendor/clang/dist/include/clang/Frontend/PCHBitCodes.h
vendor/clang/dist/include/clang/Frontend/PCHReader.h
vendor/clang/dist/include/clang/Frontend/PCHWriter.h
vendor/clang/dist/include/clang/Frontend/TextDiagnosticPrinter.h
vendor/clang/dist/include/clang/Index/Utils.h
vendor/clang/dist/include/clang/Lex/LiteralSupport.h
vendor/clang/dist/include/clang/Lex/Preprocessor.h
vendor/clang/dist/include/clang/Lex/Token.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/Sema/CodeCompleteConsumer.h
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/DeclBase.cpp
vendor/clang/dist/lib/AST/DeclCXX.cpp
vendor/clang/dist/lib/AST/DeclObjC.cpp
vendor/clang/dist/lib/AST/DeclPrinter.cpp
vendor/clang/dist/lib/AST/DeclTemplate.cpp
vendor/clang/dist/lib/AST/Expr.cpp
vendor/clang/dist/lib/AST/ExprCXX.cpp
vendor/clang/dist/lib/AST/ExprConstant.cpp
vendor/clang/dist/lib/AST/RecordLayoutBuilder.cpp
vendor/clang/dist/lib/AST/RecordLayoutBuilder.h
vendor/clang/dist/lib/AST/StmtPrinter.cpp
vendor/clang/dist/lib/AST/StmtProfile.cpp
vendor/clang/dist/lib/AST/TemplateName.cpp
vendor/clang/dist/lib/AST/Type.cpp
vendor/clang/dist/lib/Analysis/BasicObjCFoundationChecks.cpp
vendor/clang/dist/lib/Analysis/BasicObjCFoundationChecks.h
vendor/clang/dist/lib/Analysis/BasicStore.cpp
vendor/clang/dist/lib/Analysis/CFRefCount.cpp
vendor/clang/dist/lib/Analysis/CMakeLists.txt
vendor/clang/dist/lib/Analysis/CallGraph.cpp
vendor/clang/dist/lib/Analysis/CheckObjCUnusedIVars.cpp
vendor/clang/dist/lib/Analysis/GRExprEngine.cpp
vendor/clang/dist/lib/Analysis/GRExprEngineInternalChecks.cpp
vendor/clang/dist/lib/Analysis/RegionStore.cpp
vendor/clang/dist/lib/Basic/CMakeLists.txt
vendor/clang/dist/lib/Basic/IdentifierTable.cpp
vendor/clang/dist/lib/Basic/TargetInfo.cpp
vendor/clang/dist/lib/Basic/Targets.cpp
vendor/clang/dist/lib/CodeGen/CGBuiltin.cpp
vendor/clang/dist/lib/CodeGen/CGCXX.cpp
vendor/clang/dist/lib/CodeGen/CGCall.cpp
vendor/clang/dist/lib/CodeGen/CGDecl.cpp
vendor/clang/dist/lib/CodeGen/CGExpr.cpp
vendor/clang/dist/lib/CodeGen/CGExprAgg.cpp
vendor/clang/dist/lib/CodeGen/CGExprConstant.cpp
vendor/clang/dist/lib/CodeGen/CGExprScalar.cpp
vendor/clang/dist/lib/CodeGen/CGObjC.cpp
vendor/clang/dist/lib/CodeGen/CGRecordLayoutBuilder.h
vendor/clang/dist/lib/CodeGen/CGRtti.cpp
vendor/clang/dist/lib/CodeGen/CGStmt.cpp
vendor/clang/dist/lib/CodeGen/CGValue.h
vendor/clang/dist/lib/CodeGen/CGVtable.cpp
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/CodeGenTypes.cpp
vendor/clang/dist/lib/CodeGen/Mangle.cpp
vendor/clang/dist/lib/CodeGen/Mangle.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/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/PrintPreprocessedOutput.cpp
vendor/clang/dist/lib/Frontend/RewriteObjC.cpp
vendor/clang/dist/lib/Frontend/TextDiagnosticPrinter.cpp
vendor/clang/dist/lib/Headers/CMakeLists.txt
vendor/clang/dist/lib/Headers/stdint.h
vendor/clang/dist/lib/Index/ResolveLocation.cpp
vendor/clang/dist/lib/Lex/HeaderMap.cpp
vendor/clang/dist/lib/Lex/PPDirectives.cpp
vendor/clang/dist/lib/Lex/PPExpressions.cpp
vendor/clang/dist/lib/Lex/PPMacroExpansion.cpp
vendor/clang/dist/lib/Parse/AttributeList.cpp
vendor/clang/dist/lib/Parse/DeclSpec.cpp
vendor/clang/dist/lib/Parse/MinimalAction.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/Sema/CodeCompleteConsumer.cpp
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/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/SemaLookup.cpp
vendor/clang/dist/lib/Sema/SemaOverload.cpp
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/SemaTemplateInstantiateDecl.cpp
vendor/clang/dist/lib/Sema/SemaType.cpp
vendor/clang/dist/lib/Sema/TreeTransform.h
vendor/clang/dist/test/Analysis/misc-ps-eager-assume.m
vendor/clang/dist/test/Analysis/misc-ps-region-store.m
vendor/clang/dist/test/Analysis/misc-ps.m
vendor/clang/dist/test/Analysis/outofbound.c
vendor/clang/dist/test/Analysis/retain-release-gc-only.m
vendor/clang/dist/test/Analysis/retain-release.m
vendor/clang/dist/test/Analysis/uninit-vals-ps-region.c
vendor/clang/dist/test/Analysis/unused-ivars.m
vendor/clang/dist/test/CMakeLists.txt
vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.unqual/p14.cpp
vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.unqual/p15.cpp
vendor/clang/dist/test/CXX/class/class.union/p1.cpp
vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p3.cpp
vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p4.cpp
vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p6.cpp
vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.stc/p10.cpp
vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.typedef/p4.cpp
vendor/clang/dist/test/CXX/temp/temp.decls/temp.class.spec/p6.cpp
vendor/clang/dist/test/CXX/temp/temp.decls/temp.friend/p5.cpp
vendor/clang/dist/test/CXX/temp/temp.param/p14.cpp
vendor/clang/dist/test/CXX/temp/temp.res/temp.dep.res/temp.point/p1.cpp
vendor/clang/dist/test/CXX/temp/temp.spec/temp.expl.spec/p3.cpp
vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p3.cpp
vendor/clang/dist/test/CodeGen/2008-07-21-mixed-var-fn-decl.c
vendor/clang/dist/test/CodeGen/2008-07-29-override-alias-decl.c
vendor/clang/dist/test/CodeGen/asm-inout.c
vendor/clang/dist/test/CodeGen/blocks-2.c
vendor/clang/dist/test/CodeGen/builtin-unwind-init.c
vendor/clang/dist/test/CodeGen/cast-to-union.c
vendor/clang/dist/test/CodeGen/function-attributes.c
vendor/clang/dist/test/CodeGen/indirect-goto.c
vendor/clang/dist/test/CodeGen/mangle.c
vendor/clang/dist/test/CodeGen/union-init2.c
vendor/clang/dist/test/CodeGen/volatile.c
vendor/clang/dist/test/CodeGenCXX/ptr-to-datamember.cpp
vendor/clang/dist/test/CodeGenCXX/temporaries.cpp
vendor/clang/dist/test/CodeGenCXX/virt.cpp
vendor/clang/dist/test/CodeGenObjC/PR4894-recursive-debug-crash.m
vendor/clang/dist/test/CodeGenObjC/encode-test-2.m
vendor/clang/dist/test/CodeGenObjC/synthesize_ivar.m
vendor/clang/dist/test/Coverage/objc-language-features.inc
vendor/clang/dist/test/Coverage/targets.c
vendor/clang/dist/test/Driver/analyze.c
vendor/clang/dist/test/Driver/ccc-add-args.c
vendor/clang/dist/test/Driver/hello.c
vendor/clang/dist/test/Driver/phases.c
vendor/clang/dist/test/Driver/qa_override.c
vendor/clang/dist/test/Driver/std.c
vendor/clang/dist/test/Frontend/darwin-version.c
vendor/clang/dist/test/Frontend/dependency-gen.c
vendor/clang/dist/test/Lexer/block_cmt_end.c
vendor/clang/dist/test/Makefile
vendor/clang/dist/test/Misc/message-length.c
vendor/clang/dist/test/PCH/pr4489.c
vendor/clang/dist/test/Parser/cxx-template-decl.cpp
vendor/clang/dist/test/Preprocessor/assembler-with-cpp.c
vendor/clang/dist/test/Preprocessor/c99-6_10_3_3_p4.c
vendor/clang/dist/test/Preprocessor/c99-6_10_3_4_p5.c
vendor/clang/dist/test/Preprocessor/c99-6_10_3_4_p6.c
vendor/clang/dist/test/Preprocessor/c99-6_10_3_4_p7.c
vendor/clang/dist/test/Preprocessor/c99-6_10_3_4_p9.c
vendor/clang/dist/test/Preprocessor/comment_save.c
vendor/clang/dist/test/Preprocessor/comment_save_macro.c
vendor/clang/dist/test/Preprocessor/line-directive.c
vendor/clang/dist/test/Preprocessor/macro_disable3.c
vendor/clang/dist/test/Preprocessor/macro_paste_mscomment.c
vendor/clang/dist/test/Preprocessor/macro_rescan_varargs.c
vendor/clang/dist/test/Preprocessor/macro_rparen_scan2.c
vendor/clang/dist/test/Preprocessor/output_paste_avoid.c
vendor/clang/dist/test/Preprocessor/stringize_misc.c
vendor/clang/dist/test/Sema/attr-deprecated.c
vendor/clang/dist/test/Sema/callingconv.c
vendor/clang/dist/test/Sema/constant-builtins-2.c
vendor/clang/dist/test/Sema/decl-invalid.c
vendor/clang/dist/test/Sema/format-strings.c
vendor/clang/dist/test/Sema/init.c
vendor/clang/dist/test/Sema/offsetof.c
vendor/clang/dist/test/Sema/return-noreturn.c
vendor/clang/dist/test/Sema/return.c
vendor/clang/dist/test/Sema/statements.c
vendor/clang/dist/test/Sema/stdcall-fastcall.c
vendor/clang/dist/test/Sema/vector-init.c
vendor/clang/dist/test/SemaCXX/constructor.cpp
vendor/clang/dist/test/SemaCXX/implicit-int.cpp
vendor/clang/dist/test/SemaCXX/invalid-member-expr.cpp
vendor/clang/dist/test/SemaCXX/invalid-template-specifier.cpp
vendor/clang/dist/test/SemaCXX/nested-name-spec.cpp
vendor/clang/dist/test/SemaCXX/new-delete.cpp
vendor/clang/dist/test/SemaCXX/overloaded-operator.cpp
vendor/clang/dist/test/SemaCXX/typedef-redecl.cpp
vendor/clang/dist/test/SemaObjC/continuation-class-err.m
vendor/clang/dist/test/SemaObjC/id-isa-ref.m
vendor/clang/dist/test/SemaObjC/return.m
vendor/clang/dist/test/SemaObjCXX/overload.mm
vendor/clang/dist/test/SemaObjCXX/references.mm
vendor/clang/dist/test/SemaTemplate/class-template-spec.cpp
vendor/clang/dist/test/SemaTemplate/constructor-template.cpp
vendor/clang/dist/test/SemaTemplate/copy-ctor-assign.cpp
vendor/clang/dist/test/SemaTemplate/default-expr-arguments.cpp
vendor/clang/dist/test/SemaTemplate/ext-vector-type.cpp
vendor/clang/dist/test/SemaTemplate/friend-template.cpp
vendor/clang/dist/test/SemaTemplate/instantiate-cast.cpp
vendor/clang/dist/test/SemaTemplate/instantiate-declref-ice.cpp
vendor/clang/dist/test/SemaTemplate/instantiate-declref.cpp
vendor/clang/dist/test/SemaTemplate/instantiate-function-1.mm
vendor/clang/dist/test/SemaTemplate/instantiate-method.cpp
vendor/clang/dist/test/SemaTemplate/instantiate-subscript.cpp
vendor/clang/dist/test/SemaTemplate/member-template-access-expr.cpp
vendor/clang/dist/test/SemaTemplate/nested-name-spec-template.cpp
vendor/clang/dist/test/SemaTemplate/nested-template.cpp
vendor/clang/dist/test/lit.site.cfg.in
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/CMakeLists.txt
vendor/clang/dist/tools/c-index-test/c-index-test.c
vendor/clang/dist/tools/clang-cc/clang-cc.cpp
vendor/clang/dist/tools/wpa/clang-wpa.cpp
vendor/clang/dist/www/UniversalDriver.html
vendor/clang/dist/www/analyzer/latest_checker.html.incl
vendor/clang/dist/www/cxx_status.html
Modified: vendor/clang/dist/CMakeLists.txt
==============================================================================
--- vendor/clang/dist/CMakeLists.txt Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/CMakeLists.txt Wed Nov 4 15:04:32 2009 (r198893)
@@ -65,7 +65,7 @@ macro(add_clang_library name)
set_target_properties(${name} PROPERTIES COMPILE_FLAGS ${cflag})
endif(MSVC)
install(TARGETS ${name}
- LIBRARY DESTINATION lib
+ LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
endmacro(add_clang_library)
@@ -83,8 +83,12 @@ include_directories(
${CMAKE_CURRENT_BINARY_DIR}/include
)
-install(DIRECTORY include
- DESTINATION .
+install(DIRECTORY include/
+ DESTINATION include
+ FILES_MATCHING
+ PATTERN "*.def"
+ PATTERN "*.h"
+ PATTERN "*.td"
PATTERN ".svn" EXCLUDE
)
Modified: vendor/clang/dist/clang.xcodeproj/project.pbxproj
==============================================================================
--- vendor/clang/dist/clang.xcodeproj/project.pbxproj Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/clang.xcodeproj/project.pbxproj Wed Nov 4 15:04:32 2009 (r198893)
@@ -49,6 +49,7 @@
1ADF47AF0F782C3200E48A8A /* SemaTemplateInstantiateDecl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1ADF47AE0F782C3200E48A8A /* SemaTemplateInstantiateDecl.cpp */; };
1AE4EE3E103B89ED00888A23 /* StmtProfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE4EE3D103B89ED00888A23 /* StmtProfile.cpp */; };
1AE4EE40103B8A0A00888A23 /* TargetABIInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE4EE3F103B8A0A00888A23 /* TargetABIInfo.cpp */; };
+ 1AF1B50F109A4FB800AFAFAC /* CGException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AF1B50E109A4FB800AFAFAC /* CGException.cpp */; };
1AFEF4070F8A6B2300476F2B /* clang-cc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFEF4050F8A6B2300476F2B /* clang-cc.cpp */; };
1AFF8AE31012BFC900D248DA /* CGRecordLayoutBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFF8AE11012BFC900D248DA /* CGRecordLayoutBuilder.cpp */; };
3507E4C20E27FE2D00FB7B57 /* CheckObjCInstMethSignature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3507E4C10E27FE2D00FB7B57 /* CheckObjCInstMethSignature.cpp */; };
@@ -399,6 +400,7 @@
1AE4EE3B103B89CA00888A23 /* TreeTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = TreeTransform.h; path = lib/Sema/TreeTransform.h; sourceTree = "<group>"; tabWidth = 2; };
1AE4EE3D103B89ED00888A23 /* StmtProfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = StmtProfile.cpp; path = lib/AST/StmtProfile.cpp; sourceTree = "<group>"; tabWidth = 2; };
1AE4EE3F103B8A0A00888A23 /* TargetABIInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = TargetABIInfo.cpp; path = lib/CodeGen/TargetABIInfo.cpp; sourceTree = "<group>"; tabWidth = 2; };
+ 1AF1B50E109A4FB800AFAFAC /* CGException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGException.cpp; path = lib/CodeGen/CGException.cpp; sourceTree = "<group>"; tabWidth = 2; };
1AFEF4050F8A6B2300476F2B /* clang-cc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = "clang-cc.cpp"; path = "tools/clang-cc/clang-cc.cpp"; sourceTree = "<group>"; tabWidth = 2; };
1AFF8AE11012BFC900D248DA /* CGRecordLayoutBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.cpp.cpp; name = CGRecordLayoutBuilder.cpp; path = lib/CodeGen/CGRecordLayoutBuilder.cpp; sourceTree = "<group>"; tabWidth = 2; };
1AFF8AE21012BFC900D248DA /* CGRecordLayoutBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.h; name = CGRecordLayoutBuilder.h; path = lib/CodeGen/CGRecordLayoutBuilder.h; sourceTree = "<group>"; tabWidth = 2; };
@@ -515,6 +517,13 @@
9012911C1048068D0083456D /* ASTUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ASTUnit.cpp; path = lib/Frontend/ASTUnit.cpp; sourceTree = "<group>"; };
9012911F104812F90083456D /* CIndex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CIndex.cpp; path = tools/CIndex/CIndex.cpp; sourceTree = "<group>"; };
90129120104812F90083456D /* CIndex.exports */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CIndex.exports; path = tools/CIndex/CIndex.exports; sourceTree = "<group>"; };
+ 904753791096376F00CBDDDD /* CXXInheritance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CXXInheritance.h; path = clang/AST/CXXInheritance.h; sourceTree = "<group>"; };
+ 9047537A1096376F00CBDDDD /* Redeclarable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Redeclarable.h; path = clang/AST/Redeclarable.h; sourceTree = "<group>"; };
+ 9047537B1096376F00CBDDDD /* TypeLoc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TypeLoc.h; path = clang/AST/TypeLoc.h; sourceTree = "<group>"; };
+ 9047537C1096376F00CBDDDD /* TypeLocBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TypeLocBuilder.h; path = clang/AST/TypeLocBuilder.h; sourceTree = "<group>"; };
+ 9047537D1096376F00CBDDDD /* TypeLocNodes.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = TypeLocNodes.def; path = clang/AST/TypeLocNodes.def; sourceTree = "<group>"; };
+ 9047537E1096376F00CBDDDD /* TypeLocVisitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TypeLocVisitor.h; path = clang/AST/TypeLocVisitor.h; sourceTree = "<group>"; };
+ 9047537F1096376F00CBDDDD /* TypeVisitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TypeVisitor.h; path = clang/AST/TypeVisitor.h; sourceTree = "<group>"; };
9063F2210F9E8BDF002F7251 /* ExternalSemaSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExternalSemaSource.h; path = clang/Sema/ExternalSemaSource.h; sourceTree = "<group>"; };
9063F2220F9E8BDF002F7251 /* SemaConsumer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SemaConsumer.h; path = clang/Sema/SemaConsumer.h; sourceTree = "<group>"; };
9063F2280F9E911F002F7251 /* OnDiskHashTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OnDiskHashTable.h; sourceTree = "<group>"; };
@@ -1257,6 +1266,7 @@
35A3E7000DD3874400757F74 /* CGDebugInfo.cpp */,
35A3E7010DD3874400757F74 /* CGDebugInfo.h */,
DE4264FB0C113592005A861D /* CGDecl.cpp */,
+ 1AF1B50E109A4FB800AFAFAC /* CGException.cpp */,
DE4772FB0C10EAEC002239E8 /* CGExpr.cpp */,
DEF2EFF20C6CDD74000C4259 /* CGExprAgg.cpp */,
DE224FF70C7AA98800D370A5 /* CGExprComplex.cpp */,
@@ -1298,6 +1308,13 @@
DEC8D98B0A9433BC00353FCA /* AST */ = {
isa = PBXGroup;
children = (
+ 904753791096376F00CBDDDD /* CXXInheritance.h */,
+ 9047537A1096376F00CBDDDD /* Redeclarable.h */,
+ 9047537B1096376F00CBDDDD /* TypeLoc.h */,
+ 9047537C1096376F00CBDDDD /* TypeLocBuilder.h */,
+ 9047537D1096376F00CBDDDD /* TypeLocNodes.def */,
+ 9047537E1096376F00CBDDDD /* TypeLocVisitor.h */,
+ 9047537F1096376F00CBDDDD /* TypeVisitor.h */,
DECB78540FA58F5500F5FBC7 /* AccessSpecifier.h */,
DE613EF30E0E148D00B05B79 /* APValue.h */,
DEC8D9A30A94346E00353FCA /* AST.h */,
@@ -1901,6 +1918,7 @@
1A535ED9107BC45E000C3AE7 /* CXXInheritance.cpp in Sources */,
1A6C01F7108128710072DEE4 /* CGRtti.cpp in Sources */,
1A81AA19108144F40094E50B /* CGVtable.cpp in Sources */,
+ 1AF1B50F109A4FB800AFAFAC /* CGException.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: vendor/clang/dist/docs/LanguageExtensions.html
==============================================================================
--- vendor/clang/dist/docs/LanguageExtensions.html Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/docs/LanguageExtensions.html Wed Nov 4 15:04:32 2009 (r198893)
@@ -20,6 +20,7 @@ td {
<ul>
<li><a href="#intro">Introduction</a></li>
<li><a href="#feature_check">Feature Checking Macros</a></li>
+<li><a href="#has_include">Include File Checking Macros</a></li>
<li><a href="#builtinmacros">Builtin Macros</a></li>
<li><a href="#vectors">Vectors and Extended Vectors</a></li>
<li><a href="#blocks">Blocks</a></li>
@@ -112,6 +113,69 @@ can be used like this:</p>
<p>The feature tag is described along with the language feature below.</p>
+<!-- ======================================================================= -->
+<h2 id="has_include">Include File Checking Macros</h2>
+<!-- ======================================================================= -->
+
+<p>Not all developments systems have the same include files.
+The <a href="#__has_include">__has_include</a> and
+<a href="#__has_include_next">__has_include_next</a> macros allow you to
+check for the existence of an include file before doing
+a possibly failing #include directive.</p>
+
+<!-- ======================================================================= -->
+<h3 id="__has_include">__has_include</h3>
+<!-- ======================================================================= -->
+
+<p>This function-like macro takes a single file name string argument that
+is the name of an include file. It evaluates to 1 if the file can
+be found using the include paths, or 0 otherwise:</p>
+
+<blockquote>
+<pre>
+// Note the two possible file name string formats.
+#if __has_include("myinclude.h") && __has_include(<stdint.h>)
+# include "myinclude.h"
+#endif
+
+// To avoid problem with non-clang compilers not having this macro.
+#if defined(__has_include) && __has_include("myinclude.h")
+# include "myinclude.h"
+#endif
+</pre>
+</blockquote>
+
+<p>To test for this feature, use #if defined(__has_include).</p>
+
+<!-- ======================================================================= -->
+<h3 id="__has_include_next">__has_include_next</h3>
+<!-- ======================================================================= -->
+
+<p>This function-like macro takes a single file name string argument that
+is the name of an include file. It is like __has_include except that it
+looks for the second instance of the given file found in the include
+paths. It evaluates to 1 if the second instance of the file can
+be found using the include paths, or 0 otherwise:</p>
+
+<blockquote>
+<pre>
+// Note the two possible file name string formats.
+#if __has_include_next("myinclude.h") && __has_include_next(<stdint.h>)
+# include_next "myinclude.h"
+#endif
+
+// To avoid problem with non-clang compilers not having this macro.
+#if defined(__has_include_next) && __has_include_next("myinclude.h")
+# include_next "myinclude.h"
+#endif
+</pre>
+</blockquote>
+
+<p>Note that __has_include_next, like the GNU extension
+#include_next directive, is intended for use in headers only,
+and will issue a warning if used in the top-level compilation
+file. A warning will also be issued if an absolute path
+is used in the file argument.</p>
<!-- ======================================================================= -->
<h2 id="builtinmacros">Builtin Macros</h2>
Modified: vendor/clang/dist/docs/tools/clang.pod
==============================================================================
--- vendor/clang/dist/docs/tools/clang.pod Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/docs/tools/clang.pod Wed Nov 4 15:04:32 2009 (r198893)
@@ -424,6 +424,10 @@ Add the specified directory to the searc
Do not search the standard system directories for include files.
+=item B<-nobuiltininc>
+
+Do not search clang's builtin directory for include files.
+
=cut
## TODO, but do we really want people using this stuff?
Modified: vendor/clang/dist/include/clang-c/Index.h
==============================================================================
--- vendor/clang/dist/include/clang-c/Index.h Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/include/clang-c/Index.h Wed Nov 4 15:04:32 2009 (r198893)
@@ -16,10 +16,23 @@
#ifndef CLANG_C_INDEX_H
#define CLANG_C_INDEX_H
+#include <sys/stat.h>
+
#ifdef __cplusplus
extern "C" {
#endif
+/* MSVC DLL import/export. */
+#ifdef _MSC_VER
+ #ifdef _CINDEX_LIB_
+ #define CINDEX_LINKAGE __declspec(dllexport)
+ #else
+ #define CINDEX_LINKAGE __declspec(dllimport)
+ #endif
+#else
+ #define CINDEX_LINKAGE
+#endif
+
/*
Clang indeX abstractions. The backing store for the following API's will be
clangs AST file (currently based on PCH). AST files are created as follows:
@@ -33,6 +46,7 @@ typedef void *CXIndex; /* An
typedef void *CXTranslationUnit; /* A translation unit instance. */
+typedef void *CXFile; /* A source file */
typedef void *CXDecl; /* A specific declaration within a translation unit. */
typedef void *CXStmt; /* A specific statement within a function/method */
@@ -138,22 +152,22 @@ typedef void *CXEntity;
* -include-pch) allows 'excludeDeclsFromPCH' to remove redundant callbacks
* (which gives the indexer the same performance benefit as the compiler).
*/
-CXIndex clang_createIndex(int excludeDeclarationsFromPCH,
+CINDEX_LINKAGE CXIndex clang_createIndex(int excludeDeclarationsFromPCH,
int displayDiagnostics);
-void clang_disposeIndex(CXIndex);
+CINDEX_LINKAGE void clang_disposeIndex(CXIndex);
-const char *clang_getTranslationUnitSpelling(CXTranslationUnit CTUnit);
+CINDEX_LINKAGE const char *clang_getTranslationUnitSpelling(CXTranslationUnit CTUnit);
/*
* \brief Create a translation unit from an AST file (-emit-ast).
*/
-CXTranslationUnit clang_createTranslationUnit(
+CINDEX_LINKAGE CXTranslationUnit clang_createTranslationUnit(
CXIndex, const char *ast_filename
);
/**
* \brief Destroy the specified CXTranslationUnit object.
*/
-void clang_disposeTranslationUnit(CXTranslationUnit);
+CINDEX_LINKAGE void clang_disposeTranslationUnit(CXTranslationUnit);
/**
* \brief Return the CXTranslationUnit for a given source file and the provided
@@ -170,7 +184,7 @@ void clang_disposeTranslationUnit(CXTran
* '-o <output file>' (both '-o' and '<output file>' are ignored)
*
*/
-CXTranslationUnit clang_createTranslationUnitFromSourceFile(
+CINDEX_LINKAGE CXTranslationUnit clang_createTranslationUnitFromSourceFile(
CXIndex CIdx,
const char *source_filename /* specify NULL if the source file is in clang_command_line_args */,
int num_clang_command_line_args,
@@ -197,7 +211,7 @@ CXTranslationUnit clang_createTranslatio
typedef void *CXClientData;
typedef void (*CXTranslationUnitIterator)(CXTranslationUnit, CXCursor,
CXClientData);
-void clang_loadTranslationUnit(CXTranslationUnit, CXTranslationUnitIterator,
+CINDEX_LINKAGE void clang_loadTranslationUnit(CXTranslationUnit, CXTranslationUnitIterator,
CXClientData);
/*
@@ -227,23 +241,30 @@ void clang_loadTranslationUnit(CXTransla
*/
typedef void (*CXDeclIterator)(CXDecl, CXCursor, CXClientData);
-void clang_loadDeclaration(CXDecl, CXDeclIterator, CXClientData);
+CINDEX_LINKAGE void clang_loadDeclaration(CXDecl, CXDeclIterator, CXClientData);
+
+/*
+ * CXFile Operations.
+ */
+CINDEX_LINKAGE const char *clang_getFileName(CXFile SFile);
+CINDEX_LINKAGE time_t clang_getFileTime(CXFile SFile);
/*
* CXEntity Operations.
*/
-const char *clang_getDeclarationName(CXEntity);
-const char *clang_getURI(CXEntity);
-CXEntity clang_getEntity(const char *URI);
+CINDEX_LINKAGE const char *clang_getDeclarationName(CXEntity);
+CINDEX_LINKAGE const char *clang_getURI(CXEntity);
+CINDEX_LINKAGE CXEntity clang_getEntity(const char *URI);
/*
* CXDecl Operations.
*/
-CXCursor clang_getCursorFromDecl(CXDecl);
-CXEntity clang_getEntityFromDecl(CXDecl);
-const char *clang_getDeclSpelling(CXDecl);
-unsigned clang_getDeclLine(CXDecl);
-unsigned clang_getDeclColumn(CXDecl);
-const char *clang_getDeclSource(CXDecl);
+CINDEX_LINKAGE CXCursor clang_getCursorFromDecl(CXDecl);
+CINDEX_LINKAGE CXEntity clang_getEntityFromDecl(CXDecl);
+CINDEX_LINKAGE const char *clang_getDeclSpelling(CXDecl);
+CINDEX_LINKAGE unsigned clang_getDeclLine(CXDecl);
+CINDEX_LINKAGE unsigned clang_getDeclColumn(CXDecl);
+CINDEX_LINKAGE const char *clang_getDeclSource(CXDecl); /* deprecate */
+CINDEX_LINKAGE CXFile clang_getDeclSourceFile(CXDecl);
/*
* CXCursor Operations.
@@ -252,38 +273,24 @@ const char *clang_getDeclSource(CXDecl);
Usage: clang_getCursor() will translate a source/line/column position
into an AST cursor (to derive semantic information from the source code).
*/
-CXCursor clang_getCursor(CXTranslationUnit, const char *source_name,
+CINDEX_LINKAGE CXCursor clang_getCursor(CXTranslationUnit, const char *source_name,
unsigned line, unsigned column);
-/**
- Usage: clang_getCursorWithHint() provides the same functionality as
- clang_getCursor() except that it takes an option 'hint' argument.
- The 'hint' is a temporary CXLookupHint object (whose lifetime is managed by
- the caller) that should be initialized with clang_initCXLookupHint().
-
- FIXME: Add a better comment once getCursorWithHint() has more functionality.
- */
-typedef CXCursor CXLookupHint;
-CXCursor clang_getCursorWithHint(CXTranslationUnit, const char *source_name,
- unsigned line, unsigned column,
- CXLookupHint *hint);
-
-void clang_initCXLookupHint(CXLookupHint *hint);
-
-enum CXCursorKind clang_getCursorKind(CXCursor);
-unsigned clang_isDeclaration(enum CXCursorKind);
-unsigned clang_isReference(enum CXCursorKind);
-unsigned clang_isDefinition(enum CXCursorKind);
-unsigned clang_isInvalid(enum CXCursorKind);
-
-unsigned clang_getCursorLine(CXCursor);
-unsigned clang_getCursorColumn(CXCursor);
-const char *clang_getCursorSource(CXCursor);
-const char *clang_getCursorSpelling(CXCursor);
+CINDEX_LINKAGE enum CXCursorKind clang_getCursorKind(CXCursor);
+CINDEX_LINKAGE unsigned clang_isDeclaration(enum CXCursorKind);
+CINDEX_LINKAGE unsigned clang_isReference(enum CXCursorKind);
+CINDEX_LINKAGE unsigned clang_isDefinition(enum CXCursorKind);
+CINDEX_LINKAGE unsigned clang_isInvalid(enum CXCursorKind);
+
+CINDEX_LINKAGE unsigned clang_getCursorLine(CXCursor);
+CINDEX_LINKAGE unsigned clang_getCursorColumn(CXCursor);
+CINDEX_LINKAGE const char *clang_getCursorSpelling(CXCursor);
+CINDEX_LINKAGE const char *clang_getCursorSource(CXCursor); /* deprecate */
+CINDEX_LINKAGE CXFile clang_getCursorSourceFile(CXCursor);
/* for debug/testing */
-const char *clang_getCursorKindSpelling(enum CXCursorKind Kind);
-void clang_getDefinitionSpellingAndExtent(CXCursor,
+CINDEX_LINKAGE const char *clang_getCursorKindSpelling(enum CXCursorKind Kind);
+CINDEX_LINKAGE void clang_getDefinitionSpellingAndExtent(CXCursor,
const char **startBuf,
const char **endBuf,
unsigned *startLine,
@@ -296,7 +303,7 @@ void clang_getDefinitionSpellingAndExten
* declaration.
* If CXCursorKind == Cursor_Declaration, then this will return the declaration.
*/
-CXDecl clang_getCursorDecl(CXCursor);
+CINDEX_LINKAGE CXDecl clang_getCursorDecl(CXCursor);
#ifdef __cplusplus
}
Modified: vendor/clang/dist/include/clang/AST/ASTContext.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/ASTContext.h Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/include/clang/AST/ASTContext.h Wed Nov 4 15:04:32 2009 (r198893)
@@ -16,6 +16,7 @@
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LangOptions.h"
+#include "clang/Basic/OperatorKinds.h"
#include "clang/AST/Attr.h"
#include "clang/AST/Decl.h"
#include "clang/AST/NestedNameSpecifier.h"
@@ -301,22 +302,22 @@ public:
const char *getCommentForDecl(const Decl *D);
// Builtin Types.
- QualType VoidTy;
- QualType BoolTy;
- QualType CharTy;
- QualType WCharTy; // [C++ 3.9.1p5], integer type in C99.
- QualType Char16Ty; // [C++0x 3.9.1p5], integer type in C99.
- QualType Char32Ty; // [C++0x 3.9.1p5], integer type in C99.
- QualType SignedCharTy, ShortTy, IntTy, LongTy, LongLongTy, Int128Ty;
- QualType UnsignedCharTy, UnsignedShortTy, UnsignedIntTy, UnsignedLongTy;
- QualType UnsignedLongLongTy, UnsignedInt128Ty;
- QualType FloatTy, DoubleTy, LongDoubleTy;
- QualType FloatComplexTy, DoubleComplexTy, LongDoubleComplexTy;
- QualType VoidPtrTy, NullPtrTy;
- QualType OverloadTy;
- QualType DependentTy;
- QualType UndeducedAutoTy;
- QualType ObjCBuiltinIdTy, ObjCBuiltinClassTy;
+ CanQualType VoidTy;
+ CanQualType BoolTy;
+ CanQualType CharTy;
+ CanQualType WCharTy; // [C++ 3.9.1p5], integer type in C99.
+ CanQualType Char16Ty; // [C++0x 3.9.1p5], integer type in C99.
+ CanQualType Char32Ty; // [C++0x 3.9.1p5], integer type in C99.
+ CanQualType SignedCharTy, ShortTy, IntTy, LongTy, LongLongTy, Int128Ty;
+ CanQualType UnsignedCharTy, UnsignedShortTy, UnsignedIntTy, UnsignedLongTy;
+ CanQualType UnsignedLongLongTy, UnsignedInt128Ty;
+ CanQualType FloatTy, DoubleTy, LongDoubleTy;
+ CanQualType FloatComplexTy, DoubleComplexTy, LongDoubleComplexTy;
+ CanQualType VoidPtrTy, NullPtrTy;
+ CanQualType OverloadTy;
+ CanQualType DependentTy;
+ CanQualType UndeducedAutoTy;
+ CanQualType ObjCBuiltinIdTy, ObjCBuiltinClassTy;
ASTContext(const LangOptions& LOpts, SourceManager &SM, TargetInfo &t,
IdentifierTable &idents, SelectorTable &sels,
@@ -387,10 +388,16 @@ public:
/// getComplexType - Return the uniqued reference to the type for a complex
/// number with the specified element type.
QualType getComplexType(QualType T);
+ CanQualType getComplexType(CanQualType T) {
+ return CanQualType::CreateUnsafe(getComplexType((QualType) T));
+ }
/// getPointerType - Return the uniqued reference to the type for a pointer to
/// the specified type.
QualType getPointerType(QualType T);
+ CanQualType getPointerType(CanQualType T) {
+ return CanQualType::CreateUnsafe(getPointerType((QualType) T));
+ }
/// getBlockPointerType - Return the uniqued reference to the type for a block
/// of the specified type.
@@ -525,6 +532,11 @@ public:
unsigned NumArgs,
QualType Canon = QualType());
+ QualType getTemplateSpecializationType(TemplateName T,
+ const TemplateArgumentLoc *Args,
+ unsigned NumArgs,
+ QualType Canon = QualType());
+
QualType getQualifiedNameType(NestedNameSpecifier *NNS,
QualType NamedType);
QualType getTypenameType(NestedNameSpecifier *NNS,
@@ -728,6 +740,8 @@ public:
TemplateName getDependentTemplateName(NestedNameSpecifier *NNS,
const IdentifierInfo *Name);
+ TemplateName getDependentTemplateName(NestedNameSpecifier *NNS,
+ OverloadedOperatorKind Operator);
enum GetBuiltinTypeError {
GE_None, //< No error
@@ -739,7 +753,7 @@ public:
QualType GetBuiltinType(unsigned ID, GetBuiltinTypeError &Error);
private:
- QualType getFromTargetType(unsigned Type) const;
+ CanQualType getFromTargetType(unsigned Type) const;
//===--------------------------------------------------------------------===//
// Type Predicates.
@@ -826,6 +840,8 @@ public:
llvm::SmallVectorImpl<ObjCIvarDecl*> &Ivars);
unsigned CountSynthesizedIvars(const ObjCInterfaceDecl *OI);
unsigned CountProtocolSynthesizedIvars(const ObjCProtocolDecl *PD);
+ void CollectInheritedProtocols(const Decl *CDecl,
+ llvm::SmallVectorImpl<ObjCProtocolDecl*> &Protocols);
//===--------------------------------------------------------------------===//
// Type Operators
@@ -1013,7 +1029,9 @@ public:
bool canAssignObjCInterfaces(const ObjCInterfaceType *LHS,
const ObjCInterfaceType *RHS);
bool areComparableObjCPointerTypes(QualType LHS, QualType RHS);
-
+ QualType areCommonBaseCompatible(const ObjCObjectPointerType *LHSOPT,
+ const ObjCObjectPointerType *RHSOPT);
+
// Functions for calculating composite types
QualType mergeTypes(QualType, QualType);
QualType mergeFunctionTypes(QualType, QualType);
@@ -1085,12 +1103,18 @@ public:
/// should be calculated based on the type.
DeclaratorInfo *CreateDeclaratorInfo(QualType T, unsigned Size = 0);
+ /// \brief Allocate a DeclaratorInfo where all locations have been
+ /// initialized to a given location, which defaults to the empty
+ /// location.
+ DeclaratorInfo *
+ getTrivialDeclaratorInfo(QualType T, SourceLocation Loc = SourceLocation());
+
private:
ASTContext(const ASTContext&); // DO NOT IMPLEMENT
void operator=(const ASTContext&); // DO NOT IMPLEMENT
void InitBuiltinTypes();
- void InitBuiltinType(QualType &R, BuiltinType::Kind K);
+ void InitBuiltinType(CanQualType &R, BuiltinType::Kind K);
// Return the ObjC type encoding for a given type.
void getObjCEncodingForTypeImpl(QualType t, std::string &S,
@@ -1103,6 +1127,18 @@ private:
const ASTRecordLayout &getObjCLayout(const ObjCInterfaceDecl *D,
const ObjCImplementationDecl *Impl);
};
+
+/// @brief Utility function for constructing a nullary selector.
+static inline Selector GetNullarySelector(const char* name, ASTContext& Ctx) {
+ IdentifierInfo* II = &Ctx.Idents.get(name);
+ return Ctx.Selectors.getSelector(0, &II);
+}
+
+/// @brief Utility function for constructing an unary selector.
+static inline Selector GetUnarySelector(const char* name, ASTContext& Ctx) {
+ IdentifierInfo* II = &Ctx.Idents.get(name);
+ return Ctx.Selectors.getSelector(1, &II);
+}
} // end namespace clang
Modified: vendor/clang/dist/include/clang/AST/CanonicalType.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/CanonicalType.h Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/include/clang/AST/CanonicalType.h Wed Nov 4 15:04:32 2009 (r198893)
@@ -64,15 +64,6 @@ public:
CanQual(const CanQual<U>& Other,
typename llvm::enable_if<llvm::is_base_of<T, U>, int>::type = 0);
- /// \brief Implicit conversion to the underlying pointer.
- ///
- /// Also provides the ability to use canonical types in a boolean context,
- /// e.g.,
- /// @code
- /// if (CanQual<PointerType> Ptr = T->getAs<PointerType>()) { ... }
- /// @endcode
- operator const T*() const { return getTypePtr(); }
-
/// \brief Retrieve the underlying type pointer, which refers to a
/// canonical type.
T *getTypePtr() const { return cast_or_null<T>(Stored.getTypePtr()); }
@@ -80,6 +71,10 @@ public:
/// \brief Implicit conversion to a qualified type.
operator QualType() const { return Stored; }
+ bool isNull() const {
+ return Stored.isNull();
+ }
+
/// \brief Retrieve a canonical type pointer with a different static type,
/// upcasting or downcasting as needed.
///
@@ -125,8 +120,10 @@ public:
/// \brief Retrieve the unqualified form of this type.
CanQual<T> getUnqualifiedType() const;
- CanQual<T> getQualifiedType(unsigned TQs) const {
- return CanQual<T>::CreateUnsafe(QualType(getTypePtr(), TQs));
+ /// \brief Retrieves a version of this type with const applied.
+ /// Note that this does not always yield a canonical type.
+ QualType withConst() const {
+ return Stored.withConst();
}
/// \brief Determines whether this canonical type is more qualified than
Modified: vendor/clang/dist/include/clang/AST/Decl.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/Decl.h Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/include/clang/AST/Decl.h Wed Nov 4 15:04:32 2009 (r198893)
@@ -605,6 +605,9 @@ public:
/// \brief Determine whether this is or was instantiated from an out-of-line
/// definition of a static data member.
bool isOutOfLine() const;
+
+ /// \brief If this is a static data member, find its out-of-line definition.
+ VarDecl *getOutOfLineDefinition();
/// \brief If this variable is an instantiated static data member of a
/// class template specialization, returns the templated static data member
@@ -768,7 +771,11 @@ public:
Init = (UnparsedDefaultArgument *)0;
}
- QualType getOriginalType() const;
+ QualType getOriginalType() const {
+ if (getDeclaratorInfo())
+ return getDeclaratorInfo()->getType();
+ return getType();
+ }
/// setOwningFunction - Sets the function declaration that owns this
/// ParmVarDecl. Since ParmVarDecls are often created before the
@@ -778,41 +785,11 @@ public:
// Implement isa/cast/dyncast/etc.
static bool classof(const Decl *D) {
- return (D->getKind() == ParmVar ||
- D->getKind() == OriginalParmVar);
+ return (D->getKind() == ParmVar);
}
static bool classof(const ParmVarDecl *D) { return true; }
};
-/// OriginalParmVarDecl - Represent a parameter to a function, when
-/// the type of the parameter has been promoted. This node represents the
-/// parameter to the function with its original type.
-///
-class OriginalParmVarDecl : public ParmVarDecl {
- friend class ParmVarDecl;
-protected:
- QualType OriginalType;
-private:
- OriginalParmVarDecl(DeclContext *DC, SourceLocation L,
- IdentifierInfo *Id, QualType T,
- DeclaratorInfo *DInfo,
- QualType OT, StorageClass S,
- Expr *DefArg)
- : ParmVarDecl(OriginalParmVar, DC, L, Id, T, DInfo, S, DefArg),
- OriginalType(OT) {}
-public:
- static OriginalParmVarDecl *Create(ASTContext &C, DeclContext *DC,
- SourceLocation L,IdentifierInfo *Id,
- QualType T, DeclaratorInfo *DInfo,
- QualType OT, StorageClass S, Expr *DefArg);
-
- void setOriginalType(QualType T) { OriginalType = T; }
-
- // Implement isa/cast/dyncast/etc.
- static bool classof(const Decl *D) { return D->getKind() == OriginalParmVar; }
- static bool classof(const OriginalParmVarDecl *D) { return true; }
-};
-
/// FunctionDecl - An instance of this class is created to represent a
/// function declaration or definition.
///
@@ -1067,9 +1044,18 @@ public:
StorageClass getStorageClass() const { return StorageClass(SClass); }
void setStorageClass(StorageClass SC) { SClass = SC; }
- bool isInline() const { return IsInline; }
- void setInline(bool I) { IsInline = I; }
+ /// \brief Determine whether the "inline" keyword was specified for this
+ /// function.
+ bool isInlineSpecified() const { return IsInline; }
+
+ /// Set whether the "inline" keyword was specified for this function.
+ void setInlineSpecified(bool I) { IsInline = I; }
+ /// \brief Determine whether this function should be inlined, because it is
+ /// either marked "inline" or is a member function of a C++ class that
+ /// was defined in the class body.
+ bool isInlined() const;
+
bool isInlineDefinitionExternallyVisible() const;
/// isOverloadedOperator - Whether this function declaration
@@ -1146,7 +1132,17 @@ public:
return TemplateOrSpecialization.
dyn_cast<FunctionTemplateSpecializationInfo*>();
}
-
+
+ /// \brief Determines whether this function is a function template
+ /// specialization or a member of a class template specialization that can
+ /// be implicitly instantiated.
+ bool isImplicitlyInstantiable() const;
+
+ /// \brief Retrieve the function declaration from which this function could
+ /// be instantiated, if it is an instantiation (rather than a non-template
+ /// or a specialization, for example).
+ FunctionDecl *getTemplateInstantiationPattern() const;
+
/// \brief Retrieve the primary template that this function template
/// specialization either specializes or was instantiated from.
///
@@ -1199,7 +1195,7 @@ public:
/// instantiated from a template; otherwie, returns an invalid source
/// location.
SourceLocation getPointOfInstantiation() const;
-
+
/// \brief Determine whether this is or was instantiated from an out-of-line
/// definition of a member function.
bool isOutOfLine() const;
@@ -1337,20 +1333,29 @@ public:
class TypedefDecl : public TypeDecl {
/// UnderlyingType - This is the type the typedef is set to.
- QualType UnderlyingType;
+ DeclaratorInfo *DInfo;
+
TypedefDecl(DeclContext *DC, SourceLocation L,
- IdentifierInfo *Id, QualType T)
- : TypeDecl(Typedef, DC, L, Id), UnderlyingType(T) {}
+ IdentifierInfo *Id, DeclaratorInfo *DInfo)
+ : TypeDecl(Typedef, DC, L, Id), DInfo(DInfo) {}
virtual ~TypedefDecl() {}
public:
static TypedefDecl *Create(ASTContext &C, DeclContext *DC,
- SourceLocation L,IdentifierInfo *Id,
- QualType T);
+ SourceLocation L, IdentifierInfo *Id,
+ DeclaratorInfo *DInfo);
+
+ DeclaratorInfo *getTypeDeclaratorInfo() const {
+ return DInfo;
+ }
- QualType getUnderlyingType() const { return UnderlyingType; }
- void setUnderlyingType(QualType newType) { UnderlyingType = newType; }
+ QualType getUnderlyingType() const {
+ return DInfo->getType();
+ }
+ void setTypeDeclaratorInfo(DeclaratorInfo *newType) {
+ DInfo = newType;
+ }
// Implement isa/cast/dyncast/etc.
static bool classof(const Decl *D) { return D->getKind() == Typedef; }
Modified: vendor/clang/dist/include/clang/AST/DeclGroup.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/DeclGroup.h Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/include/clang/AST/DeclGroup.h Wed Nov 4 15:04:32 2009 (r198893)
@@ -14,7 +14,7 @@
#ifndef LLVM_CLANG_AST_DECLGROUP_H
#define LLVM_CLANG_AST_DECLGROUP_H
-#include "llvm/Support/DataTypes.h"
+#include "llvm/System/DataTypes.h"
#include <cassert>
namespace clang {
Modified: vendor/clang/dist/include/clang/AST/DeclNodes.def
==============================================================================
--- vendor/clang/dist/include/clang/AST/DeclNodes.def Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/include/clang/AST/DeclNodes.def Wed Nov 4 15:04:32 2009 (r198893)
@@ -103,7 +103,6 @@ ABSTRACT_DECL(Named, Decl)
DECL(Var, DeclaratorDecl)
DECL(ImplicitParam, VarDecl)
DECL(ParmVar, VarDecl)
- DECL(OriginalParmVar, ParmVarDecl)
DECL(NonTypeTemplateParm, VarDecl)
DECL(Template, NamedDecl)
DECL(FunctionTemplate, TemplateDecl)
Modified: vendor/clang/dist/include/clang/AST/DeclObjC.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/DeclObjC.h Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/include/clang/AST/DeclObjC.h Wed Nov 4 15:04:32 2009 (r198893)
@@ -347,6 +347,8 @@ public:
ObjCIvarDecl *getIvarDecl(IdentifierInfo *Id) const;
ObjCPropertyDecl *FindPropertyDeclaration(IdentifierInfo *PropertyId) const;
+ ObjCPropertyDecl *FindPropertyVisibleInPrimaryClass(
+ IdentifierInfo *PropertyId) const;
// Marks the end of the container.
SourceLocation getAtEndLoc() const { return AtEndLoc; }
@@ -862,7 +864,7 @@ public:
};
class ObjCImplDecl : public ObjCContainerDecl {
- /// Class interface for this category implementation
+ /// Class interface for this class/category implementation
ObjCInterfaceDecl *ClassInterface;
protected:
@@ -935,14 +937,20 @@ public:
SourceLocation L, IdentifierInfo *Id,
ObjCInterfaceDecl *classInterface);
- /// getIdentifier - Get the identifier that names the class
+ /// getIdentifier - Get the identifier that names the category
/// interface associated with this implementation.
+ /// FIXME: This is a bad API, we are overriding the NamedDecl::getIdentifier()
+ /// to mean something different. For example:
+ /// ((NamedDecl *)SomeCategoryImplDecl)->getIdentifier()
+ /// returns the class interface name, whereas
+ /// ((ObjCCategoryImplDecl *)SomeCategoryImplDecl)->getIdentifier()
+ /// returns the category name.
IdentifierInfo *getIdentifier() const {
return Id;
}
void setIdentifier(IdentifierInfo *II) { Id = II; }
- ObjCCategoryDecl *getCategoryClass() const;
+ ObjCCategoryDecl *getCategoryDecl() const;
/// getName - Get the name of identifier for the class interface associated
/// with this implementation as a StringRef.
Modified: vendor/clang/dist/include/clang/AST/DeclTemplate.h
==============================================================================
--- vendor/clang/dist/include/clang/AST/DeclTemplate.h Wed Nov 4 14:58:56 2009 (r198892)
+++ vendor/clang/dist/include/clang/AST/DeclTemplate.h Wed Nov 4 15:04:32 2009 (r198893)
@@ -15,8 +15,7 @@
#define LLVM_CLANG_AST_DECLTEMPLATE_H
#include "clang/AST/DeclCXX.h"
-#include "llvm/ADT/APSInt.h"
-#include "llvm/ADT/FoldingSet.h"
+#include "clang/AST/TemplateBase.h"
#include "llvm/ADT/PointerUnion.h"
#include <limits>
@@ -91,6 +90,13 @@ public:
/// arguments or if there is a parameter pack.
unsigned getMinRequiredArguments() const;
+ /// \brief Get the depth of this template parameter list in the set of
+ /// template parameter lists.
+ ///
+ /// The first template parameter list in a declaration will have depth 0,
+ /// the second template parameter list will have depth 1, etc.
+ unsigned getDepth() const;
+
SourceLocation getTemplateLoc() const { return TemplateLoc; }
SourceLocation getLAngleLoc() const { return LAngleLoc; }
SourceLocation getRAngleLoc() const { return RAngleLoc; }
@@ -100,251 +106,6 @@ public:
}
};
-/// \brief Represents a template argument within a class template
-/// specialization.
-class TemplateArgument {
- union {
- uintptr_t TypeOrValue;
- struct {
- char Value[sizeof(llvm::APSInt)];
- void *Type;
- } Integer;
- struct {
- TemplateArgument *Args;
- unsigned NumArgs;
- bool CopyArgs;
- } Args;
- };
-
- /// \brief Location of the beginning of this template argument.
- SourceLocation StartLoc;
-
-public:
- /// \brief The type of template argument we're storing.
- enum ArgKind {
- Null = 0,
- /// The template argument is a type. Its value is stored in the
- /// TypeOrValue field.
- Type = 1,
- /// The template argument is a declaration
- Declaration = 2,
- /// The template argument is an integral value stored in an llvm::APSInt.
- Integral = 3,
- /// The template argument is a value- or type-dependent expression
- /// stored in an Expr*.
- Expression = 4,
-
- /// The template argument is actually a parameter pack. Arguments are stored
- /// in the Args struct.
- Pack = 5
- } Kind;
-
- /// \brief Construct an empty, invalid template argument.
- TemplateArgument() : TypeOrValue(0), StartLoc(), Kind(Null) { }
-
- /// \brief Construct a template type argument.
- TemplateArgument(SourceLocation Loc, QualType T) : Kind(Type) {
- TypeOrValue = reinterpret_cast<uintptr_t>(T.getAsOpaquePtr());
- StartLoc = Loc;
- }
-
- /// \brief Construct a template argument that refers to a
- /// declaration, which is either an external declaration or a
- /// template declaration.
- TemplateArgument(SourceLocation Loc, Decl *D) : Kind(Declaration) {
- // FIXME: Need to be sure we have the "canonical" declaration!
- TypeOrValue = reinterpret_cast<uintptr_t>(D);
- StartLoc = Loc;
- }
-
- /// \brief Construct an integral constant template argument.
- TemplateArgument(SourceLocation Loc, const llvm::APSInt &Value,
- QualType Type)
- : Kind(Integral) {
- new (Integer.Value) llvm::APSInt(Value);
- Integer.Type = Type.getAsOpaquePtr();
- StartLoc = Loc;
- }
-
- /// \brief Construct a template argument that is an expression.
- ///
- /// This form of template argument only occurs in template argument
- /// lists used for dependent types and for expression; it will not
- /// occur in a non-dependent, canonical template argument list.
- TemplateArgument(Expr *E);
-
- /// \brief Copy constructor for a template argument.
- TemplateArgument(const TemplateArgument &Other) : Kind(Other.Kind) {
- if (Kind == Integral) {
- new (Integer.Value) llvm::APSInt(*Other.getAsIntegral());
- Integer.Type = Other.Integer.Type;
- } else if (Kind == Pack) {
- Args.NumArgs = Other.Args.NumArgs;
- Args.Args = new TemplateArgument[Args.NumArgs];
- for (unsigned I = 0; I != Args.NumArgs; ++I)
- Args.Args[I] = Other.Args.Args[I];
- }
- else
- TypeOrValue = Other.TypeOrValue;
- StartLoc = Other.StartLoc;
- }
-
- TemplateArgument& operator=(const TemplateArgument& Other) {
- // FIXME: Does not provide the strong guarantee for exception
- // safety.
- using llvm::APSInt;
-
- // FIXME: Handle Packs
- assert(Kind != Pack && "FIXME: Handle packs");
- assert(Other.Kind != Pack && "FIXME: Handle packs");
-
- if (Kind == Other.Kind && Kind == Integral) {
- // Copy integral values.
- *this->getAsIntegral() = *Other.getAsIntegral();
- Integer.Type = Other.Integer.Type;
- } else {
- // Destroy the current integral value, if that's what we're holding.
- if (Kind == Integral)
- getAsIntegral()->~APSInt();
-
- Kind = Other.Kind;
-
- if (Other.Kind == Integral) {
- new (Integer.Value) llvm::APSInt(*Other.getAsIntegral());
- Integer.Type = Other.Integer.Type;
- } else
- TypeOrValue = Other.TypeOrValue;
- }
- StartLoc = Other.StartLoc;
-
- return *this;
- }
-
- ~TemplateArgument() {
- using llvm::APSInt;
-
- if (Kind == Integral)
- getAsIntegral()->~APSInt();
- else if (Kind == Pack && Args.CopyArgs)
- delete[] Args.Args;
- }
-
- /// \brief Return the kind of stored template argument.
- ArgKind getKind() const { return Kind; }
-
- /// \brief Determine whether this template argument has no value.
- bool isNull() const { return Kind == Null; }
-
- /// \brief Retrieve the template argument as a type.
- QualType getAsType() const {
- if (Kind != Type)
- return QualType();
-
- return QualType::getFromOpaquePtr(reinterpret_cast<void*>(TypeOrValue));
- }
-
- /// \brief Retrieve the template argument as a declaration.
- Decl *getAsDecl() const {
- if (Kind != Declaration)
- return 0;
- return reinterpret_cast<Decl *>(TypeOrValue);
- }
-
- /// \brief Retrieve the template argument as an integral value.
- llvm::APSInt *getAsIntegral() {
- if (Kind != Integral)
- return 0;
- return reinterpret_cast<llvm::APSInt*>(&Integer.Value[0]);
- }
-
- const llvm::APSInt *getAsIntegral() const {
- return const_cast<TemplateArgument*>(this)->getAsIntegral();
- }
-
- /// \brief Retrieve the type of the integral value.
- QualType getIntegralType() const {
- if (Kind != Integral)
- return QualType();
-
- return QualType::getFromOpaquePtr(Integer.Type);
- }
-
- void setIntegralType(QualType T) {
- assert(Kind == Integral &&
- "Cannot set the integral type of a non-integral template argument");
- Integer.Type = T.getAsOpaquePtr();
- };
-
- /// \brief Retrieve the template argument as an expression.
- Expr *getAsExpr() const {
- if (Kind != Expression)
- return 0;
-
- return reinterpret_cast<Expr *>(TypeOrValue);
- }
-
- /// \brief Iterator that traverses the elements of a template argument pack.
- typedef const TemplateArgument * pack_iterator;
-
- /// \brief Iterator referencing the first argument of a template argument
- /// pack.
- pack_iterator pack_begin() const {
- assert(Kind == Pack);
- return Args.Args;
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-all
mailing list