From owner-svn-src-vendor@FreeBSD.ORG Sun Mar 21 10:49:06 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 183FF1065672; Sun, 21 Mar 2010 10:49:06 +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 029838FC17; Sun, 21 Mar 2010 10:49:06 +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 o2LAn5x4075767; Sun, 21 Mar 2010 10:49:05 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2LAn5DN075752; Sun, 21 Mar 2010 10:49:05 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201003211049.o2LAn5DN075752@svn.freebsd.org> From: Roman Divacky Date: Sun, 21 Mar 2010 10:49:05 +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: r205407 - in vendor/llvm/dist: . autoconf docs include/llvm include/llvm/ADT include/llvm/Analysis include/llvm/CodeGen include/llvm/MC include/llvm/Support include/llvm/Target lib/Anal... 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: Sun, 21 Mar 2010 10:49:06 -0000 Author: rdivacky Date: Sun Mar 21 10:49:05 2010 New Revision: 205407 URL: http://svn.freebsd.org/changeset/base/205407 Log: Update LLVM to r99115. Added: vendor/llvm/dist/include/llvm/MC/MCObjectWriter.h vendor/llvm/dist/include/llvm/MC/MachObjectWriter.h vendor/llvm/dist/lib/MC/MCObjectWriter.cpp vendor/llvm/dist/lib/MC/MachObjectWriter.cpp vendor/llvm/dist/test/CodeGen/ARM/2010-03-18-ldm-rtrn.ll vendor/llvm/dist/test/CodeGen/Generic/dbg_value.ll vendor/llvm/dist/test/CodeGen/X86/2010-03-17-ISelBug.ll vendor/llvm/dist/test/DebugInfo/2010-03-19-DbgDeclare.ll vendor/llvm/dist/test/FrontendObjC/2010-03-17-StructRef.m vendor/llvm/dist/test/MC/AsmParser/X86/x86_64-encoding.s vendor/llvm/dist/test/MC/AsmParser/X86/x86_64-incl_decl.s vendor/llvm/dist/test/MC/MachO/darwin-x86_64-diff-relocs.s vendor/llvm/dist/test/MC/MachO/darwin-x86_64-reloc-offsets.s vendor/llvm/dist/test/MC/MachO/darwin-x86_64-reloc.s vendor/llvm/dist/test/MC/MachO/x86_32-optimal_nop.s Deleted: vendor/llvm/dist/test/MC/MachO/Darwin/dg.exp vendor/llvm/dist/test/MC/MachO/Darwin/optimal_nop.s vendor/llvm/dist/test/MC/MachO/Darwin/x86_32_diff_as.s Modified: vendor/llvm/dist/CMakeLists.txt vendor/llvm/dist/Makefile.rules vendor/llvm/dist/autoconf/configure.ac vendor/llvm/dist/configure vendor/llvm/dist/docs/ReleaseNotes.html vendor/llvm/dist/docs/SourceLevelDebugging.html vendor/llvm/dist/include/llvm/ADT/BitVector.h vendor/llvm/dist/include/llvm/ADT/EquivalenceClasses.h vendor/llvm/dist/include/llvm/ADT/FoldingSet.h vendor/llvm/dist/include/llvm/ADT/SmallVector.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h vendor/llvm/dist/include/llvm/CodeGen/MachineJumpTableInfo.h vendor/llvm/dist/include/llvm/Instructions.h vendor/llvm/dist/include/llvm/IntrinsicsX86.td vendor/llvm/dist/include/llvm/MC/MCAssembler.h vendor/llvm/dist/include/llvm/MC/MCCodeEmitter.h vendor/llvm/dist/include/llvm/MC/MCContext.h vendor/llvm/dist/include/llvm/MC/MCStreamer.h vendor/llvm/dist/include/llvm/MC/MCSymbol.h vendor/llvm/dist/include/llvm/MC/MCValue.h vendor/llvm/dist/include/llvm/Support/Allocator.h vendor/llvm/dist/include/llvm/Support/RecyclingAllocator.h vendor/llvm/dist/include/llvm/Target/Target.td vendor/llvm/dist/include/llvm/Target/TargetAsmBackend.h vendor/llvm/dist/include/llvm/Target/TargetLowering.h vendor/llvm/dist/include/llvm/Target/TargetOptions.h vendor/llvm/dist/include/llvm/Target/TargetRegistry.h vendor/llvm/dist/include/llvm/Target/TargetSelectionDAG.td vendor/llvm/dist/lib/Analysis/ConstantFolding.cpp vendor/llvm/dist/lib/Analysis/LoopDependenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionExpander.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp vendor/llvm/dist/lib/CodeGen/BranchFolding.cpp vendor/llvm/dist/lib/CodeGen/GCStrategy.cpp vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp vendor/llvm/dist/lib/CodeGen/MachineFunction.cpp vendor/llvm/dist/lib/CodeGen/RegAllocLocal.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp vendor/llvm/dist/lib/CodeGen/SimpleRegisterCoalescing.cpp vendor/llvm/dist/lib/CodeGen/TailDuplication.cpp vendor/llvm/dist/lib/MC/CMakeLists.txt vendor/llvm/dist/lib/MC/MCAsmStreamer.cpp vendor/llvm/dist/lib/MC/MCAssembler.cpp vendor/llvm/dist/lib/MC/MCCodeEmitter.cpp vendor/llvm/dist/lib/MC/MCContext.cpp vendor/llvm/dist/lib/MC/MCExpr.cpp vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp vendor/llvm/dist/lib/MC/MCValue.cpp vendor/llvm/dist/lib/MC/TargetAsmBackend.cpp vendor/llvm/dist/lib/Support/FoldingSet.cpp vendor/llvm/dist/lib/System/Unix/Signals.inc vendor/llvm/dist/lib/Target/ARM/ARMAddressingModes.h vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.h vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMCodeEmitter.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.h vendor/llvm/dist/lib/Target/ARM/ARMInstrFormats.td vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td vendor/llvm/dist/lib/Target/ARM/ARMInstrNEON.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb2.td vendor/llvm/dist/lib/Target/ARM/ARMInstrVFP.td vendor/llvm/dist/lib/Target/ARM/ARMLoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.h vendor/llvm/dist/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp vendor/llvm/dist/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp vendor/llvm/dist/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h vendor/llvm/dist/lib/Target/ARM/NEONPreAllocPass.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2ITBlockPass.cpp vendor/llvm/dist/lib/Target/Alpha/AlphaInstrFormats.td vendor/llvm/dist/lib/Target/Alpha/AlphaInstrInfo.td vendor/llvm/dist/lib/Target/Blackfin/BlackfinInstrInfo.td vendor/llvm/dist/lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp vendor/llvm/dist/lib/Target/CBackend/CBackend.cpp vendor/llvm/dist/lib/Target/CellSPU/SPUInstrInfo.td vendor/llvm/dist/lib/Target/CellSPU/SPUNodes.td vendor/llvm/dist/lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.td vendor/llvm/dist/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.cpp vendor/llvm/dist/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.h vendor/llvm/dist/lib/Target/PIC16/PIC16Section.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.cpp vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.td vendor/llvm/dist/lib/Target/TargetData.cpp vendor/llvm/dist/lib/Target/TargetLoweringObjectFile.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmParser.cpp vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp vendor/llvm/dist/lib/Target/X86/Disassembler/X86Disassembler.cpp vendor/llvm/dist/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c vendor/llvm/dist/lib/Target/X86/X86.td vendor/llvm/dist/lib/Target/X86/X86AsmBackend.cpp vendor/llvm/dist/lib/Target/X86/X86FastISel.cpp vendor/llvm/dist/lib/Target/X86/X86FixupKinds.h vendor/llvm/dist/lib/Target/X86/X86ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/lib/Target/X86/X86Instr64bit.td vendor/llvm/dist/lib/Target/X86/X86InstrFPStack.td vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td vendor/llvm/dist/lib/Target/X86/X86MCCodeEmitter.cpp vendor/llvm/dist/lib/Target/X86/X86Subtarget.cpp vendor/llvm/dist/lib/Target/X86/X86Subtarget.h vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.td vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCalls.cpp vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp vendor/llvm/dist/lib/Transforms/Scalar/SimplifyLibCalls.cpp vendor/llvm/dist/lib/VMCore/AsmWriter.cpp vendor/llvm/dist/lib/VMCore/Verifier.cpp vendor/llvm/dist/test/CodeGen/ARM/2009-10-27-double-align.ll vendor/llvm/dist/test/CodeGen/ARM/2009-10-30.ll vendor/llvm/dist/test/CodeGen/ARM/arm-negative-stride.ll vendor/llvm/dist/test/CodeGen/ARM/globals.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt5.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt6.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt7.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt8.ll vendor/llvm/dist/test/CodeGen/ARM/ldm.ll vendor/llvm/dist/test/CodeGen/ARM/ldrd.ll vendor/llvm/dist/test/CodeGen/ARM/str_pre-2.ll vendor/llvm/dist/test/CodeGen/ARM/tls2.ll vendor/llvm/dist/test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll vendor/llvm/dist/test/CodeGen/Thumb2/large-stack.ll vendor/llvm/dist/test/CodeGen/Thumb2/ldr-str-imm12.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldr.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldrh.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-str.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-str_pre.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-strb.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-strh.ll vendor/llvm/dist/test/CodeGen/X86/2007-01-08-InstrSched.ll vendor/llvm/dist/test/CodeGen/X86/gather-addresses.ll vendor/llvm/dist/test/CodeGen/X86/lsr-reuse.ll vendor/llvm/dist/test/CodeGen/X86/sibcall.ll vendor/llvm/dist/test/CodeGen/X86/sse2.ll vendor/llvm/dist/test/CodeGen/X86/sse3.ll vendor/llvm/dist/test/CodeGen/X86/sse42.ll vendor/llvm/dist/test/CodeGen/X86/widen_load-2.ll vendor/llvm/dist/test/LLVMC/AppendCmdHook.td vendor/llvm/dist/test/LLVMC/C++/dash-x.cpp vendor/llvm/dist/test/LLVMC/C++/hello.cpp vendor/llvm/dist/test/LLVMC/C++/together.cpp vendor/llvm/dist/test/LLVMC/C/emit-llvm.c vendor/llvm/dist/test/LLVMC/C/hello.c vendor/llvm/dist/test/LLVMC/C/include.c vendor/llvm/dist/test/LLVMC/C/opt-test.c vendor/llvm/dist/test/LLVMC/C/sink.c vendor/llvm/dist/test/LLVMC/C/wall.c vendor/llvm/dist/test/LLVMC/EmptyCompilationGraph.td vendor/llvm/dist/test/LLVMC/EnvParentheses.td vendor/llvm/dist/test/LLVMC/ExternOptions.td vendor/llvm/dist/test/LLVMC/ForwardAs.td vendor/llvm/dist/test/LLVMC/ForwardTransformedValue.td vendor/llvm/dist/test/LLVMC/ForwardValue.td vendor/llvm/dist/test/LLVMC/HookWithArguments.td vendor/llvm/dist/test/LLVMC/HookWithInFile.td vendor/llvm/dist/test/LLVMC/Init.td vendor/llvm/dist/test/LLVMC/MultiValuedOption.td vendor/llvm/dist/test/LLVMC/MultipleCompilationGraphs.td vendor/llvm/dist/test/LLVMC/NoActions.td vendor/llvm/dist/test/LLVMC/NoCompilationGraph.td vendor/llvm/dist/test/LLVMC/OneOrMore.td vendor/llvm/dist/test/LLVMC/OptionPreprocessor.td vendor/llvm/dist/test/LLVMC/TestWarnings.td vendor/llvm/dist/test/MC/AsmParser/X86/x86_32-bit_cat.s vendor/llvm/dist/test/MC/AsmParser/X86/x86_32-encoding.s vendor/llvm/dist/test/MC/AsmParser/X86/x86_64-new-encoder.s vendor/llvm/dist/test/MC/MachO/reloc.s vendor/llvm/dist/test/TableGen/2003-08-03-PassCode.td vendor/llvm/dist/test/TableGen/2006-09-18-LargeInt.td vendor/llvm/dist/test/TableGen/AnonDefinitionOnDemand.td vendor/llvm/dist/test/TableGen/DagDefSubst.td vendor/llvm/dist/test/TableGen/DagIntSubst.td vendor/llvm/dist/test/TableGen/DefmInherit.td vendor/llvm/dist/test/TableGen/ForwardRef.td vendor/llvm/dist/test/TableGen/GeneralList.td vendor/llvm/dist/test/TableGen/IntBitInit.td vendor/llvm/dist/test/TableGen/LazyChange.td vendor/llvm/dist/test/TableGen/ListArgs.td vendor/llvm/dist/test/TableGen/ListArgsSimple.td vendor/llvm/dist/test/TableGen/ListConversion.td vendor/llvm/dist/test/TableGen/ListSlices.td vendor/llvm/dist/test/TableGen/MultiClass.td vendor/llvm/dist/test/TableGen/MultiClassDefName.td vendor/llvm/dist/test/TableGen/MultiClassInherit.td vendor/llvm/dist/test/TableGen/Slice.td vendor/llvm/dist/test/TableGen/String.td vendor/llvm/dist/test/TableGen/SuperSubclassSameName.td vendor/llvm/dist/test/TableGen/TargetInstrInfo.td vendor/llvm/dist/test/TableGen/TargetInstrSpec.td vendor/llvm/dist/test/TableGen/TemplateArgRename.td vendor/llvm/dist/test/TableGen/Tree.td vendor/llvm/dist/test/TableGen/TreeNames.td vendor/llvm/dist/test/TableGen/UnsetBitInit.td vendor/llvm/dist/test/TableGen/cast.td vendor/llvm/dist/test/TableGen/eq.td vendor/llvm/dist/test/TableGen/foreach.td vendor/llvm/dist/test/TableGen/if.td vendor/llvm/dist/test/TableGen/lisp.td vendor/llvm/dist/test/TableGen/nameconcat.td vendor/llvm/dist/test/TableGen/strconcat.td vendor/llvm/dist/test/TableGen/subst.td vendor/llvm/dist/test/TableGen/subst2.td vendor/llvm/dist/test/lit.cfg vendor/llvm/dist/tools/bugpoint/BugDriver.cpp vendor/llvm/dist/tools/bugpoint/BugDriver.h vendor/llvm/dist/tools/bugpoint/OptimizerDriver.cpp vendor/llvm/dist/tools/bugpoint/bugpoint.cpp vendor/llvm/dist/tools/edis/Makefile vendor/llvm/dist/tools/llvm-mc/Disassembler.cpp vendor/llvm/dist/tools/llvm-mc/llvm-mc.cpp vendor/llvm/dist/unittests/ADT/APFloatTest.cpp vendor/llvm/dist/unittests/ADT/APIntTest.cpp vendor/llvm/dist/unittests/ADT/SmallVectorTest.cpp vendor/llvm/dist/unittests/Support/LeakDetectorTest.cpp vendor/llvm/dist/unittests/VMCore/InstructionsTest.cpp vendor/llvm/dist/utils/FileCheck/FileCheck.cpp vendor/llvm/dist/utils/NewNightlyTest.pl vendor/llvm/dist/utils/TableGen/AsmMatcherEmitter.cpp vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.cpp vendor/llvm/dist/utils/TableGen/ClangDiagnosticsEmitter.cpp vendor/llvm/dist/utils/TableGen/CodeEmitterGen.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.h vendor/llvm/dist/utils/TableGen/CodeGenInstruction.cpp vendor/llvm/dist/utils/TableGen/CodeGenInstruction.h vendor/llvm/dist/utils/TableGen/CodeGenTarget.cpp vendor/llvm/dist/utils/TableGen/CodeGenTarget.h vendor/llvm/dist/utils/TableGen/DAGISelEmitter.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcher.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcherGen.cpp vendor/llvm/dist/utils/TableGen/DisassemblerEmitter.cpp vendor/llvm/dist/utils/TableGen/EDEmitter.cpp vendor/llvm/dist/utils/TableGen/FastISelEmitter.cpp vendor/llvm/dist/utils/TableGen/InstrEnumEmitter.cpp vendor/llvm/dist/utils/TableGen/InstrInfoEmitter.cpp vendor/llvm/dist/utils/TableGen/Record.cpp vendor/llvm/dist/utils/buildit/build_llvm vendor/llvm/dist/utils/lit/lit/ExampleTests/Clang/lit.cfg vendor/llvm/dist/utils/lit/lit/LitConfig.py vendor/llvm/dist/utils/lit/lit/LitFormats.py vendor/llvm/dist/utils/lit/lit/TestFormats.py vendor/llvm/dist/utils/lit/lit/TestRunner.py vendor/llvm/dist/utils/lit/lit/lit.py Modified: vendor/llvm/dist/CMakeLists.txt ============================================================================== --- vendor/llvm/dist/CMakeLists.txt Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/CMakeLists.txt Sun Mar 21 10:49:05 2010 (r205407) @@ -217,7 +217,9 @@ if( MSVC ) # List of valid CRTs for MSVC set(MSVC_CRT MD - MDd) + MDd + MT + MTd) set(LLVM_USE_CRT "" CACHE STRING "Specify VC++ CRT to use for debug/release configurations.") add_llvm_definitions( -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS ) Modified: vendor/llvm/dist/Makefile.rules ============================================================================== --- vendor/llvm/dist/Makefile.rules Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/Makefile.rules Sun Mar 21 10:49:05 2010 (r205407) @@ -578,8 +578,6 @@ endif ifeq ($(TARGET_OS),Darwin) ifneq ($(ARCH),ARM) TargetCommonOpts += -mmacosx-version-min=$(DARWIN_VERSION) - else - TargetCommonOpts += -marm endif endif Modified: vendor/llvm/dist/autoconf/configure.ac ============================================================================== --- vendor/llvm/dist/autoconf/configure.ac Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/autoconf/configure.ac Sun Mar 21 10:49:05 2010 (r205407) @@ -31,12 +31,12 @@ dnl=== dnl===-----------------------------------------------------------------------=== dnl Initialize autoconf and define the package name, version number and dnl email address for reporting bugs. -AC_INIT([[llvm]],[[2.7svn]],[llvmbugs@cs.uiuc.edu]) +AC_INIT([[llvm]],[[2.8svn]],[llvmbugs@cs.uiuc.edu]) dnl Provide a copyright substitution and ensure the copyright notice is included dnl in the output of --version option of the generated configure script. -AC_SUBST(LLVM_COPYRIGHT,["Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign."]) -AC_COPYRIGHT([Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign.]) +AC_SUBST(LLVM_COPYRIGHT,["Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign."]) +AC_COPYRIGHT([Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign.]) dnl Indicate that we require autoconf 2.59 or later. Ths is needed because we dnl use some autoconf macros only available in 2.59. @@ -62,6 +62,41 @@ dnl Configure all of the projects presen dnl just AC_CONFIG_SUBDIRS on the set of directories in projects that have a dnl configure script, that usage of the AC_CONFIG_SUBDIRS macro is deprecated. dnl Instead we match on the known projects. + +dnl +dnl One tricky part of doing this is that some projects depend upon other +dnl projects. For example, several projects rely upon the LLVM test suite. +dnl We want to configure those projects first so that their object trees are +dnl created before running the configure scripts of projects that depend upon +dnl them. +dnl + +dnl Several projects use llvm-gcc, so configure that first +if test -d ${srcdir}/projects/llvm-gcc ; then + AC_CONFIG_SUBDIRS([projects/llvm-gcc]) +fi + +dnl Several projects use the LLVM test suite, so configure it next. +if test -d ${srcdir}/projects/test-suite ; then + AC_CONFIG_SUBDIRS([projects/test-suite]) +fi + +dnl llvm-test is the old name of the test-suite, kept here for backwards +dnl compatibility +if test -d ${srcdir}/projects/llvm-test ; then + AC_CONFIG_SUBDIRS([projects/llvm-test]) +fi + +dnl Some projects use poolalloc; configure that next +if test -d ${srcdir}/projects/poolalloc ; then + AC_CONFIG_SUBDIRS([projects/poolalloc]) +fi + +if test -d ${srcdir}/projects/llvm-poolalloc ; then + AC_CONFIG_SUBDIRS([projects/llvm-poolalloc]) +fi + +dnl Check for all other projects for i in `ls ${srcdir}/projects` do if test -d ${srcdir}/projects/${i} ; then @@ -70,16 +105,9 @@ do sample) AC_CONFIG_SUBDIRS([projects/sample]) ;; privbracket) AC_CONFIG_SUBDIRS([projects/privbracket]) ;; llvm-stacker) AC_CONFIG_SUBDIRS([projects/llvm-stacker]) ;; - # llvm-test is the old name of the test-suite, kept here for backwards - # compatibility - llvm-test) AC_CONFIG_SUBDIRS([projects/llvm-test]) ;; - test-suite) AC_CONFIG_SUBDIRS([projects/test-suite]) ;; llvm-reopt) AC_CONFIG_SUBDIRS([projects/llvm-reopt]);; - llvm-gcc) AC_CONFIG_SUBDIRS([projects/llvm-gcc]) ;; llvm-java) AC_CONFIG_SUBDIRS([projects/llvm-java]) ;; llvm-tv) AC_CONFIG_SUBDIRS([projects/llvm-tv]) ;; - llvm-poolalloc) AC_CONFIG_SUBDIRS([projects/llvm-poolalloc]) ;; - poolalloc) AC_CONFIG_SUBDIRS([projects/poolalloc]) ;; safecode) AC_CONFIG_SUBDIRS([projects/safecode]) ;; llvm-kernel) AC_CONFIG_SUBDIRS([projects/llvm-kernel]) ;; *) Modified: vendor/llvm/dist/configure ============================================================================== --- vendor/llvm/dist/configure Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/configure Sun Mar 21 10:49:05 2010 (r205407) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.60 for llvm 2.7svn. +# Generated by GNU Autoconf 2.60 for llvm 2.8svn. # # Report bugs to . # @@ -9,7 +9,7 @@ # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # -# Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign. +# Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## @@ -561,8 +561,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='llvm' PACKAGE_TARNAME='-llvm-' -PACKAGE_VERSION='2.7svn' -PACKAGE_STRING='llvm 2.7svn' +PACKAGE_VERSION='2.8svn' +PACKAGE_STRING='llvm 2.8svn' PACKAGE_BUGREPORT='llvmbugs@cs.uiuc.edu' ac_unique_file="lib/VMCore/Module.cpp" @@ -802,17 +802,17 @@ CPP CXX CXXFLAGS CCC' -ac_subdirs_all='projects/sample +ac_subdirs_all='projects/llvm-gcc +projects/test-suite +projects/llvm-test +projects/poolalloc +projects/llvm-poolalloc +projects/sample projects/privbracket projects/llvm-stacker -projects/llvm-test -projects/test-suite projects/llvm-reopt -projects/llvm-gcc projects/llvm-java projects/llvm-tv -projects/llvm-poolalloc -projects/poolalloc projects/safecode projects/llvm-kernel' @@ -1316,7 +1316,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures llvm 2.7svn to adapt to many kinds of systems. +\`configure' configures llvm 2.8svn to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1382,7 +1382,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of llvm 2.7svn:";; + short | recursive ) echo "Configuration of llvm 2.8svn:";; esac cat <<\_ACEOF @@ -1533,7 +1533,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -llvm configure 2.7svn +llvm configure 2.8svn generated by GNU Autoconf 2.60 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1541,7 +1541,7 @@ Copyright (C) 1992, 1993, 1994, 1995, 19 This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. -Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign. +Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign. _ACEOF exit fi @@ -1549,7 +1549,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by llvm $as_me 2.7svn, which was +It was created by llvm $as_me 2.8svn, which was generated by GNU Autoconf 2.60. Invocation command line was $ $0 $@ @@ -1903,7 +1903,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -LLVM_COPYRIGHT="Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign." +LLVM_COPYRIGHT="Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign." @@ -1951,6 +1951,33 @@ echo "$as_me: error: Already configured fi fi + + +if test -d ${srcdir}/projects/llvm-gcc ; then + subdirs="$subdirs projects/llvm-gcc" + +fi + +if test -d ${srcdir}/projects/test-suite ; then + subdirs="$subdirs projects/test-suite" + +fi + +if test -d ${srcdir}/projects/llvm-test ; then + subdirs="$subdirs projects/llvm-test" + +fi + +if test -d ${srcdir}/projects/poolalloc ; then + subdirs="$subdirs projects/poolalloc" + +fi + +if test -d ${srcdir}/projects/llvm-poolalloc ; then + subdirs="$subdirs projects/llvm-poolalloc" + +fi + for i in `ls ${srcdir}/projects` do if test -d ${srcdir}/projects/${i} ; then @@ -1962,24 +1989,12 @@ do ;; llvm-stacker) subdirs="$subdirs projects/llvm-stacker" ;; - # llvm-test is the old name of the test-suite, kept here for backwards - # compatibility - llvm-test) subdirs="$subdirs projects/llvm-test" - ;; - test-suite) subdirs="$subdirs projects/test-suite" - ;; llvm-reopt) subdirs="$subdirs projects/llvm-reopt" ;; - llvm-gcc) subdirs="$subdirs projects/llvm-gcc" - ;; llvm-java) subdirs="$subdirs projects/llvm-java" ;; llvm-tv) subdirs="$subdirs projects/llvm-tv" ;; - llvm-poolalloc) subdirs="$subdirs projects/llvm-poolalloc" - ;; - poolalloc) subdirs="$subdirs projects/poolalloc" - ;; safecode) subdirs="$subdirs projects/safecode" ;; llvm-kernel) subdirs="$subdirs projects/llvm-kernel" @@ -11136,7 +11151,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by llvm $as_me 2.7svn, which was +This file was extended by llvm $as_me 2.8svn, which was generated by GNU Autoconf 2.60. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20661,7 +20676,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -llvm config.status 2.7svn +llvm config.status 2.8svn configured by $0, generated by GNU Autoconf 2.60, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Modified: vendor/llvm/dist/docs/ReleaseNotes.html ============================================================================== --- vendor/llvm/dist/docs/ReleaseNotes.html Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/docs/ReleaseNotes.html Sun Mar 21 10:49:05 2010 (r205407) @@ -10,6 +10,9 @@
LLVM 2.7 Release Notes
+ +
  1. Introduction
  2. Sub-project Status Update
  3. @@ -48,14 +51,18 @@ href="http://llvm.org/releases/">LLVM re

    For more information about LLVM, including information about the latest release, please check out the main LLVM web site. If you have questions or comments, the LLVM Developer's Mailing -List is a good place to send them.

    +href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM Developer's +Mailing List is a good place to send them.

    Note that if you are reading this file from a Subversion checkout or the main LLVM web page, this document applies to the next release, not the current one. To see the release notes for a specific release, please see the releases page.

    + +

    FIXME: llvm.org moved to new server, mention new logo, Ted and Doug new code + owners.

    + @@ -66,6 +73,7 @@ Almost dead code. llvm/Analysis/PointerTracking.h => Edwin wants this, consider for 2.8. ABCD, SCCVN, GEPSplitterPass MSIL backend? + lib/Transforms/Utils/SSI.cpp -> ABCD depends on it. --> @@ -78,8 +86,6 @@ Almost dead code. loop dependence analysis ELF Writer? How stable?
  4. PostRA scheduler improvements, ARM adoption (David Goodwin).
  5. - 2.7 supports the GDB 7.0 jit interfaces for debug info. - 2.7 eliminates ADT/iterator.h --> @@ -123,6 +128,7 @@ development. Here we include updates on
    • ...
    • +include a link to cxx_compatibility.html
    @@ -139,7 +145,7 @@ href="http://clang.llvm.org/StaticAnalys in C and Objective-C programs. The tool performs checks to find bugs that occur on a specific path within a program.

    -

    In the LLVM 2.7 time-frame, the analyzer core has ...

    +

    In the LLVM 2.7 time-frame, the analyzer core has sprouted legs and...

    @@ -192,24 +198,6 @@ License, a "BSD-style" license.

    - -
    -

    -The new LLVM KLEE project is a symbolic -execution framework for programs in LLVM bitcode form. KLEE tries to -symbolically evaluate "all" paths through the application and records state -transitions that lead to fault states. This allows it to construct testcases -that lead to faults and can even be used to verify algorithms. For more -details, please see the OSDI 2008 paper about -KLEE.

    - -
    - - - @@ -257,6 +245,8 @@ The LLVM Machine Code (MC) Toolkit proje
    +Need update. +

    @@ -278,6 +269,8 @@ a counter based JIT, type feedback and s

    +Need update. +

    @@ -308,9 +301,9 @@ built-in list and matrix support (includ an easy-to-use C interface. The interpreter uses LLVM as a backend to JIT-compile Pure programs to fast native code.

    -

    Pure versions ??? and later have been tested and are known to work with -LLVM 2.7 (and continue to work with older LLVM releases >= 2.3 as well). -

    +

    Pure versions 0.43 and later have been tested and are known to work with +LLVM 2.7 (and continue to work with older LLVM releases >= 2.5).

    + @@ -321,6 +314,8 @@ LLVM 2.7 (and continue to work with olde

    +Need update. +

    @@ -342,7 +337,8 @@ fully featured as the original DMD compi Roadsend PHP (rphp) is an open source implementation of the PHP programming language that uses LLVM for its optimizer, JIT and static compiler. This is a -reimplementation of an earlier project that is now based on LLVM.

    +reimplementation of an earlier project that is now based on LLVM. +

    @@ -355,7 +351,8 @@ reimplementation of an earlier project t Unladen Swallow is a branch of Python intended to be fully compatible and significantly faster. It uses LLVM's optimization passes and JIT -compiler.

    +compiler. +

    @@ -365,10 +362,13 @@ compiler.

    +Need update. + +

    @@ -378,13 +378,15 @@ code.

    +Need update. +

    @@ -418,6 +420,54 @@ in this section.
  6. ...
  7. +Extensible metadata solid. + +Debug info improvements: using metadata instead of llvm.dbg global variables. +This brings several enhancements including improved compile times. + +New instruction selector. +GHC Haskell ABI/ calling conv support. +Pre-Alpha support for unions in IR. +New InlineHint and StackAlignment function attributes +Code generator MC'ized except for debug info and EH. +New SCEV AA pass: -scev-aa +Inliner reuses arrays allocas when inlining multiple callers to reduce stack usage. +MC encoding and disassembler apis. +Optimal Edge Profiling? +Instcombine is now a library, has its own IRBuilder to simplify itself. +New llvm/Support/Regex.h API. FileCheck now does regex's +Many subtle pointer invalidation bugs in Callgraph have been fixed and it now uses asserting value handles. +MC Disassembler (with blog post), MCInstPrinter. Many X86 backend and AsmPrinter simplifications +Various tools like llc and opt now read either .ll or .bc files as input. +Malloc and free instructions got removed. +compiler-rt support for ARM. +completely llvm-gcc NEON support. +Can transcode from GAS to intel syntax with "llvm-mc foo.s -output-asm-variant=1" +JIT debug information with GDB 7.0 +New CodeGen Level CSE +CMake can now run tests, what other improvements? +ARM/Thumb using reg scavenging for stack object address materialization (PEI). +New SSAUpdater and MachineSSAUpdater classes for unstructured ssa updating, + changed jump threading, GVN, etc to use it which simplified them and speed + them up. +Combiner-AA improvements, why not on by default? +Pre-regalloc tail duplication +x86 sibcall optimization +New LSR with full strength reduction mode +The most awesome sext / zext optimization pass. ? + + + +CondProp pass removed (functionality merged into jump threading). +AndersAA got removed (from 2.7 or mainline?) +PredSimplify, LoopVR, GVNPRE got removed. +LLVM command line tools now overwrite their output, before they would only do this with -f. +DOUT removed, use DEBUG(errs() instead. +Much stuff converted to use raw_ostream instead of std::ostream. +TargetAsmInfo renamed to MCAsmInfo +llvm/ADT/iterator.h gone. + + @@ -699,13 +749,7 @@ listed by component. If you run into a href="http://llvm.org/bugs/">LLVM bug database and submit a bug if there isn't already one.

    -
      -
    • The llvm-gcc bootstrap will fail with some versions of binutils (e.g. 2.15) - with a message of "Error: can not do 8 - byte pc-relative relocation" when building C++ code. We intend to - fix this on mainline, but a workaround is to upgrade to binutils 2.17 or - later.
    • - +
      • LLVM will not correctly compile on Solaris and/or OpenSolaris using the stock GCC 3.x.x series 'out the box', See: Broken versions of GCC and other tools. @@ -731,10 +775,11 @@ components, please contact us on the LLVMdev list.

          -
        • The MSIL, Alpha, SPU, MIPS, PIC16, Blackfin, MSP430 and SystemZ backends are - experimental.
        • +
        • The MSIL, Alpha, SPU, MIPS, PIC16, Blackfin, MSP430, SystemZ and MicroBlaze + backends are experimental.
        • The llc "-filetype=asm" (the default) is the only - supported value for this option. The ELF writer is experimental.
        • + supported value for this option. The MachO writer is experimental, and + works much better in mainline SVN.
        @@ -865,7 +910,7 @@ appropriate nops inserted to ensure rest
        @@ -883,24 +928,6 @@ appropriate nops inserted to ensure rest - -
        - -

        The C++ front-end is considered to be fully -tested and works for a number of non-trivial programs, including LLVM -itself, Qt, Mozilla, etc.

        - -
          -
        • Exception handling works well on the X86 and PowerPC targets. Currently - only Linux and Darwin targets are supported (both 32 and 64 bit).
        • -
        - -
        - - - @@ -997,7 +1024,7 @@ lists.

        src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"> LLVM Compiler Infrastructure
        - Last modified: $Date: 2010-03-01 20:29:17 +0100 (Mon, 01 Mar 2010) $ + Last modified: $Date: 2010-03-19 04:18:05 +0100 (Fri, 19 Mar 2010) $ Modified: vendor/llvm/dist/docs/SourceLevelDebugging.html ============================================================================== --- vendor/llvm/dist/docs/SourceLevelDebugging.html Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/docs/SourceLevelDebugging.html Sun Mar 21 10:49:05 2010 (r205407) @@ -237,7 +237,7 @@ height="369">

        LLVM debugging information has been carefully designed to make it possible for the optimizer to optimize the program and debugging information without necessarily having to know anything about debugging information. In - particular, te use of metadadta avoids duplicated dubgging information from + particular, the use of metadata avoids duplicated debugging information from the beginning, and the global dead code elimination pass automatically deletes debugging information for a function if it decides to delete the function.

        @@ -370,7 +370,7 @@ height="369">
        -

        These descriptors contain informations for a file. Global variables and top +

        These descriptors contain information for a file. Global variables and top level functions would be defined using this context.k File descriptors also provide context for source line correspondence.

        @@ -967,7 +967,7 @@ call void @llvm.dbg.declare({ }* %2, met -

        Here !14 indicates that Z is declaread at line number 5 and +

        Here !14 indicates that Z is declared at line number 5 and column number 9 inside of lexical scope !13. The lexical scope itself resides inside of lexical scope !1 described above.

        @@ -1762,7 +1762,7 @@ enum Trees { Chris Lattner
        LLVM Compiler Infrastructure
        - Last modified: $Date: 2010-03-09 01:44:10 +0100 (Tue, 09 Mar 2010) $ + Last modified: $Date: 2010-03-17 16:01:50 +0100 (Wed, 17 Mar 2010) $ Modified: vendor/llvm/dist/include/llvm/ADT/BitVector.h ============================================================================== --- vendor/llvm/dist/include/llvm/ADT/BitVector.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/ADT/BitVector.h Sun Mar 21 10:49:05 2010 (r205407) @@ -329,7 +329,8 @@ public: Size = RHS.size(); unsigned RHSWords = NumBitWords(Size); if (Size <= Capacity * BITWORD_SIZE) { - std::copy(RHS.Bits, &RHS.Bits[RHSWords], Bits); + if (Size) + std::copy(RHS.Bits, &RHS.Bits[RHSWords], Bits); clear_unused_bits(); return *this; } Modified: vendor/llvm/dist/include/llvm/ADT/EquivalenceClasses.h ============================================================================== --- vendor/llvm/dist/include/llvm/ADT/EquivalenceClasses.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/ADT/EquivalenceClasses.h Sun Mar 21 10:49:05 2010 (r205407) @@ -16,6 +16,7 @@ #define LLVM_ADT_EQUIVALENCECLASSES_H #include "llvm/System/DataTypes.h" +#include #include namespace llvm { Modified: vendor/llvm/dist/include/llvm/ADT/FoldingSet.h ============================================================================== --- vendor/llvm/dist/include/llvm/ADT/FoldingSet.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/ADT/FoldingSet.h Sun Mar 21 10:49:05 2010 (r205407) @@ -23,6 +23,7 @@ namespace llvm { class APFloat; class APInt; + class BumpPtrAllocator; /// This folding set used for two purposes: /// 1. Given information about a node we want to create, look up the unique @@ -198,6 +199,23 @@ template struct FoldingSetTr }; //===--------------------------------------------------------------------===// +/// FoldingSetNodeIDRef - This class describes a reference to an interned +/// FoldingSetNodeID, which can be a useful to store node id data rather +/// than using plain FoldingSetNodeIDs, since the 32-element SmallVector +/// is often much larger than necessary, and the possibility of heap +/// allocation means it requires a non-trivial destructor call. +class FoldingSetNodeIDRef { + unsigned* Data; + size_t Size; +public: + FoldingSetNodeIDRef() : Data(0), Size(0) {} + FoldingSetNodeIDRef(unsigned *D, size_t S) : Data(D), Size(S) {} + + unsigned *getData() const { return Data; } + size_t getSize() const { return Size; } +}; + +//===--------------------------------------------------------------------===// /// FoldingSetNodeID - This class is used to gather all the unique data bits of /// a node. When all the bits are gathered this class is used to produce a /// hash value for the node. @@ -210,11 +228,8 @@ class FoldingSetNodeID { public: FoldingSetNodeID() {} - /// getRawData - Return the ith entry in the Bits data. - /// - unsigned getRawData(unsigned i) const { - return Bits[i]; - } + FoldingSetNodeID(FoldingSetNodeIDRef Ref) + : Bits(Ref.getData(), Ref.getData() + Ref.getSize()) {} /// Add* - Add various data types to Bit data. /// @@ -242,6 +257,11 @@ public: /// operator== - Used to compare two nodes to each other. /// bool operator==(const FoldingSetNodeID &RHS) const; + + /// Intern - Copy this node's data to a memory region allocated from the + /// given allocator and return a FoldingSetNodeIDRef describing the + /// interned data. + FoldingSetNodeIDRef Intern(BumpPtrAllocator &Allocator) const; }; // Convenience type to hide the implementation of the folding set. Modified: vendor/llvm/dist/include/llvm/ADT/SmallVector.h ============================================================================== --- vendor/llvm/dist/include/llvm/ADT/SmallVector.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/ADT/SmallVector.h Sun Mar 21 10:49:05 2010 (r205407) @@ -57,17 +57,18 @@ protected: // something else. An array of char would work great, but might not be // aligned sufficiently. Instead, we either use GCC extensions, or some // number of union instances for the space, which guarantee maximal alignment. + struct U { #ifdef __GNUC__ - typedef char U; - U FirstEl __attribute__((aligned)); + char X __attribute__((aligned)); #else - union U { - double D; - long double LD; - long long L; - void *P; - } FirstEl; + union { + double D; + long double LD; + long long L; + void *P; + } X; #endif + } FirstEl; // Space after 'FirstEl' is clobbered, do not add any instance vars after it. protected: Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h Sun Mar 21 10:49:05 2010 (r205407) @@ -49,7 +49,11 @@ namespace llvm { /// are opaque objects that the client is not allowed to do much with /// directly. /// - class SCEV : public FastFoldingSetNode { + class SCEV : public FoldingSetNode { + /// FastID - A reference to an Interned FoldingSetNodeID for this node. + /// The ScalarEvolution's BumpPtrAllocator holds the data. + FoldingSetNodeIDRef FastID; + // The SCEV baseclass this node corresponds to const unsigned short SCEVType; @@ -64,11 +68,14 @@ namespace llvm { protected: virtual ~SCEV(); public: - explicit SCEV(const FoldingSetNodeID &ID, unsigned SCEVTy) : - FastFoldingSetNode(ID), SCEVType(SCEVTy), SubclassData(0) {} + explicit SCEV(const FoldingSetNodeIDRef ID, unsigned SCEVTy) : + FastID(ID), SCEVType(SCEVTy), SubclassData(0) {} unsigned getSCEVType() const { return SCEVType; } + /// Profile - FoldingSet support. + void Profile(FoldingSetNodeID& ID) { ID = FastID; } + /// isLoopInvariant - Return true if the value of this SCEV is unchanging in /// the specified loop. virtual bool isLoopInvariant(const Loop *L) const = 0; Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h Sun Mar 21 10:49:05 2010 (r205407) @@ -79,12 +79,7 @@ namespace llvm { /// expandCodeFor - Insert code to directly compute the specified SCEV /// expression into the program. The inserted code is inserted into the /// specified block. - Value *expandCodeFor(const SCEV *SH, const Type *Ty, Instruction *I) { - BasicBlock::iterator IP = I; - while (isInsertedInstruction(IP)) ++IP; - Builder.SetInsertPoint(IP->getParent(), IP); - return expandCodeFor(SH, Ty); - } + Value *expandCodeFor(const SCEV *SH, const Type *Ty, Instruction *I); /// setIVIncInsertPos - Set the current IV increment loop and position. void setIVIncInsertPos(const Loop *L, Instruction *Pos) { @@ -109,6 +104,13 @@ namespace llvm { /// is useful for late optimization passes. void disableCanonicalMode() { CanonicalMode = false; } + /// clearInsertPoint - Clear the current insertion point. This is useful + /// if the instruction that had been serving as the insertion point may + /// have been deleted. + void clearInsertPoint() { + Builder.ClearInsertionPoint(); + } + private: LLVMContext &getContext() const { return SE.getContext(); } Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h Sun Mar 21 10:49:05 2010 (r205407) @@ -37,7 +37,7 @@ namespace llvm { friend class ScalarEvolution; ConstantInt *V; - SCEVConstant(const FoldingSetNodeID &ID, ConstantInt *v) : + SCEVConstant(const FoldingSetNodeIDRef ID, ConstantInt *v) : SCEV(ID, scConstant), V(v) {} public: ConstantInt *getValue() const { return V; } @@ -81,7 +81,7 @@ namespace llvm { const SCEV *Op; const Type *Ty; - SCEVCastExpr(const FoldingSetNodeID &ID, + SCEVCastExpr(const FoldingSetNodeIDRef ID, unsigned SCEVTy, const SCEV *op, const Type *ty); public: @@ -120,7 +120,7 @@ namespace llvm { class SCEVTruncateExpr : public SCEVCastExpr { friend class ScalarEvolution; - SCEVTruncateExpr(const FoldingSetNodeID &ID, + SCEVTruncateExpr(const FoldingSetNodeIDRef ID, const SCEV *op, const Type *ty); public: @@ -140,7 +140,7 @@ namespace llvm { class SCEVZeroExtendExpr : public SCEVCastExpr { friend class ScalarEvolution; - SCEVZeroExtendExpr(const FoldingSetNodeID &ID, + SCEVZeroExtendExpr(const FoldingSetNodeIDRef ID, const SCEV *op, const Type *ty); public: @@ -160,7 +160,7 @@ namespace llvm { class SCEVSignExtendExpr : public SCEVCastExpr { friend class ScalarEvolution; - SCEVSignExtendExpr(const FoldingSetNodeID &ID, + SCEVSignExtendExpr(const FoldingSetNodeIDRef ID, const SCEV *op, const Type *ty); public: @@ -180,25 +180,27 @@ namespace llvm { /// class SCEVNAryExpr : public SCEV { protected: - SmallVector Operands; - - SCEVNAryExpr(const FoldingSetNodeID &ID, - enum SCEVTypes T, const SmallVectorImpl &ops) - : SCEV(ID, T), Operands(ops.begin(), ops.end()) {} + // Since SCEVs are immutable, ScalarEvolution allocates operand + // arrays with its SCEVAllocator, so this class just needs a simple + // pointer rather than a more elaborate vector-like data structure. + // This also avoids the need for a non-trivial destructor. + const SCEV *const *Operands; + size_t NumOperands; + + SCEVNAryExpr(const FoldingSetNodeIDRef ID, + enum SCEVTypes T, const SCEV *const *O, size_t N) + : SCEV(ID, T), Operands(O), NumOperands(N) {} public: - unsigned getNumOperands() const { return (unsigned)Operands.size(); } + size_t getNumOperands() const { return NumOperands; } const SCEV *getOperand(unsigned i) const { - assert(i < Operands.size() && "Operand index out of range!"); + assert(i < NumOperands && "Operand index out of range!"); return Operands[i]; } - const SmallVectorImpl &getOperands() const { - return Operands; - } - typedef SmallVectorImpl::const_iterator op_iterator; - op_iterator op_begin() const { return Operands.begin(); } - op_iterator op_end() const { return Operands.end(); } + typedef const SCEV *const *op_iterator; + op_iterator op_begin() const { return Operands; } + op_iterator op_end() const { return Operands + NumOperands; } virtual bool isLoopInvariant(const Loop *L) const { for (unsigned i = 0, e = getNumOperands(); i != e; ++i) @@ -260,10 +262,9 @@ namespace llvm { /// class SCEVCommutativeExpr : public SCEVNAryExpr { protected: - SCEVCommutativeExpr(const FoldingSetNodeID &ID, - enum SCEVTypes T, - const SmallVectorImpl &ops) - : SCEVNAryExpr(ID, T, ops) {} + SCEVCommutativeExpr(const FoldingSetNodeIDRef ID, + enum SCEVTypes T, const SCEV *const *O, size_t N) + : SCEVNAryExpr(ID, T, O, N) {} public: virtual const char *getOperationStr() const = 0; @@ -287,9 +288,9 @@ namespace llvm { class SCEVAddExpr : public SCEVCommutativeExpr { friend class ScalarEvolution; - SCEVAddExpr(const FoldingSetNodeID &ID, - const SmallVectorImpl &ops) - : SCEVCommutativeExpr(ID, scAddExpr, ops) { + SCEVAddExpr(const FoldingSetNodeIDRef ID, + const SCEV *const *O, size_t N) + : SCEVCommutativeExpr(ID, scAddExpr, O, N) { } public: @@ -315,9 +316,9 @@ namespace llvm { class SCEVMulExpr : public SCEVCommutativeExpr { friend class ScalarEvolution; - SCEVMulExpr(const FoldingSetNodeID &ID, - const SmallVectorImpl &ops) - : SCEVCommutativeExpr(ID, scMulExpr, ops) { + SCEVMulExpr(const FoldingSetNodeIDRef ID, + const SCEV *const *O, size_t N) + : SCEVCommutativeExpr(ID, scMulExpr, O, N) { } public: @@ -339,7 +340,7 @@ namespace llvm { const SCEV *LHS; const SCEV *RHS; - SCEVUDivExpr(const FoldingSetNodeID &ID, const SCEV *lhs, const SCEV *rhs) + SCEVUDivExpr(const FoldingSetNodeIDRef ID, const SCEV *lhs, const SCEV *rhs) : SCEV(ID, scUDivExpr), LHS(lhs), RHS(rhs) {} public: @@ -389,10 +390,10 @@ namespace llvm { const Loop *L; - SCEVAddRecExpr(const FoldingSetNodeID &ID, - const SmallVectorImpl &ops, const Loop *l) - : SCEVNAryExpr(ID, scAddRecExpr, ops), L(l) { - for (size_t i = 0, e = Operands.size(); i != e; ++i) + SCEVAddRecExpr(const FoldingSetNodeIDRef ID, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Sun Mar 21 10:50:09 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 32B091065673; Sun, 21 Mar 2010 10:50:09 +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 1D5348FC1E; Sun, 21 Mar 2010 10:50:09 +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 o2LAo9eY076052; Sun, 21 Mar 2010 10:50:09 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2LAo8P1076035; Sun, 21 Mar 2010 10:50:08 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201003211050.o2LAo8P1076035@svn.freebsd.org> From: Roman Divacky Date: Sun, 21 Mar 2010 10:50:08 +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: r205408 - in vendor/clang/dist: . docs include/clang-c include/clang/AST include/clang/Basic include/clang/Checker/BugReporter include/clang/Checker/PathSensitive include/clang/CodeGen ... 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: Sun, 21 Mar 2010 10:50:09 -0000 Author: rdivacky Date: Sun Mar 21 10:50:08 2010 New Revision: 205408 URL: http://svn.freebsd.org/changeset/base/205408 Log: Update clang to r99115. Added: vendor/clang/dist/docs/Block-ABI-Apple.txt vendor/clang/dist/include/clang/Lex/PreprocessingRecord.h vendor/clang/dist/lib/Headers/nmmintrin.h vendor/clang/dist/lib/Headers/varargs.h vendor/clang/dist/lib/Lex/PreprocessingRecord.cpp vendor/clang/dist/lib/Sema/AnalysisBasedWarnings.cpp vendor/clang/dist/lib/Sema/AnalysisBasedWarnings.h vendor/clang/dist/test/Analysis/uninit-vals-ps-region.m vendor/clang/dist/test/CXX/class.access/class.access.nest/p1.cpp vendor/clang/dist/test/CodeGen/const-arithmetic.c vendor/clang/dist/test/CodeGenCXX/cxx-apple-kext.cpp vendor/clang/dist/test/CodeGenCXX/global-dtor-no-atexit.cpp vendor/clang/dist/test/Driver/cc-print-options.c vendor/clang/dist/test/Index/annotate-tokens-pp.c vendor/clang/dist/test/Index/c-index-getCursor-pp.c vendor/clang/dist/test/PCH/headermap.h vendor/clang/dist/test/PCH/headermap.m vendor/clang/dist/test/Sema/warn-shadow.c vendor/clang/dist/test/SemaCXX/warn-shadow.cpp vendor/clang/dist/test/SemaCXX/warn-sign-compare.cpp vendor/clang/dist/test/SemaObjC/block-type-safety.m vendor/clang/dist/test/SemaObjC/warn-incompatible-builtin-types.m vendor/clang/dist/www/cxx_compatibility.html Deleted: vendor/clang/dist/test/Analysis/uninit-vals-ps-region.c vendor/clang/dist/test/Sema/block-byref-args.c Modified: vendor/clang/dist/Makefile vendor/clang/dist/VER vendor/clang/dist/docs/LanguageExtensions.html vendor/clang/dist/docs/UsersManual.html vendor/clang/dist/include/clang-c/Index.h vendor/clang/dist/include/clang/AST/ASTContext.h vendor/clang/dist/include/clang/AST/Expr.h vendor/clang/dist/include/clang/AST/ExternalASTSource.h vendor/clang/dist/include/clang/AST/Stmt.h vendor/clang/dist/include/clang/AST/UnresolvedSet.h vendor/clang/dist/include/clang/Basic/BuiltinsX86.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/DiagnosticGroups.td vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist/include/clang/Basic/SourceLocation.h vendor/clang/dist/include/clang/Basic/SourceManager.h vendor/clang/dist/include/clang/Basic/Version.h vendor/clang/dist/include/clang/Checker/BugReporter/BugReporter.h vendor/clang/dist/include/clang/Checker/PathSensitive/GRState.h vendor/clang/dist/include/clang/Checker/PathSensitive/Store.h vendor/clang/dist/include/clang/CodeGen/CodeGenOptions.h vendor/clang/dist/include/clang/Driver/CC1Options.td vendor/clang/dist/include/clang/Driver/Driver.h vendor/clang/dist/include/clang/Driver/Options.td vendor/clang/dist/include/clang/Frontend/ASTUnit.h vendor/clang/dist/include/clang/Frontend/CompilerInstance.h vendor/clang/dist/include/clang/Frontend/FrontendActions.h vendor/clang/dist/include/clang/Frontend/FrontendOptions.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/PreprocessorOptions.h vendor/clang/dist/include/clang/Frontend/Utils.h vendor/clang/dist/include/clang/Frontend/VerifyDiagnosticsClient.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/Parser.h vendor/clang/dist/lib/AST/ASTContext.cpp vendor/clang/dist/lib/AST/Decl.cpp vendor/clang/dist/lib/AST/DeclObjC.cpp vendor/clang/dist/lib/AST/Expr.cpp vendor/clang/dist/lib/AST/ExprConstant.cpp vendor/clang/dist/lib/AST/TypePrinter.cpp vendor/clang/dist/lib/Basic/SourceLocation.cpp vendor/clang/dist/lib/Basic/SourceManager.cpp vendor/clang/dist/lib/Checker/BasicStore.cpp vendor/clang/dist/lib/Checker/BugReporter.cpp vendor/clang/dist/lib/Checker/BugReporterVisitors.cpp vendor/clang/dist/lib/Checker/CallAndMessageChecker.cpp vendor/clang/dist/lib/Checker/CheckDeadStores.cpp vendor/clang/dist/lib/Checker/FlatStore.cpp vendor/clang/dist/lib/Checker/GRExprEngine.cpp vendor/clang/dist/lib/Checker/GRState.cpp vendor/clang/dist/lib/Checker/RegionStore.cpp vendor/clang/dist/lib/CodeGen/CGBuiltin.cpp vendor/clang/dist/lib/CodeGen/CGCXX.cpp vendor/clang/dist/lib/CodeGen/CGDebugInfo.cpp vendor/clang/dist/lib/CodeGen/CGDecl.cpp vendor/clang/dist/lib/CodeGen/CGDeclCXX.cpp vendor/clang/dist/lib/CodeGen/CGException.cpp vendor/clang/dist/lib/CodeGen/CGObjCGNU.cpp vendor/clang/dist/lib/CodeGen/CGVtable.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/Mangle.cpp vendor/clang/dist/lib/CodeGen/Mangle.h vendor/clang/dist/lib/Driver/Arg.cpp vendor/clang/dist/lib/Driver/Compilation.cpp vendor/clang/dist/lib/Driver/Driver.cpp vendor/clang/dist/lib/Driver/OptTable.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/Frontend/ASTUnit.cpp vendor/clang/dist/lib/Frontend/CacheTokens.cpp vendor/clang/dist/lib/Frontend/CompilerInstance.cpp vendor/clang/dist/lib/Frontend/CompilerInvocation.cpp vendor/clang/dist/lib/Frontend/FrontendActions.cpp vendor/clang/dist/lib/Frontend/PCHReader.cpp vendor/clang/dist/lib/Frontend/PCHWriter.cpp vendor/clang/dist/lib/Frontend/PrintPreprocessedOutput.cpp vendor/clang/dist/lib/Frontend/RewriteMacros.cpp vendor/clang/dist/lib/Frontend/Warnings.cpp vendor/clang/dist/lib/Headers/emmintrin.h vendor/clang/dist/lib/Headers/smmintrin.h vendor/clang/dist/lib/Headers/xmmintrin.h vendor/clang/dist/lib/Lex/CMakeLists.txt vendor/clang/dist/lib/Lex/Lexer.cpp vendor/clang/dist/lib/Lex/MacroArgs.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/Lex/TokenLexer.cpp vendor/clang/dist/lib/Parse/AttributeList.cpp vendor/clang/dist/lib/Parse/ParseDecl.cpp vendor/clang/dist/lib/Parse/ParseDeclCXX.cpp vendor/clang/dist/lib/Parse/Parser.cpp vendor/clang/dist/lib/Sema/CMakeLists.txt vendor/clang/dist/lib/Sema/CXXFieldCollector.h vendor/clang/dist/lib/Sema/ParseAST.cpp vendor/clang/dist/lib/Sema/Sema.cpp vendor/clang/dist/lib/Sema/Sema.h vendor/clang/dist/lib/Sema/SemaAccess.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/SemaDeclCXX.cpp vendor/clang/dist/lib/Sema/SemaExpr.cpp vendor/clang/dist/lib/Sema/SemaExprCXX.cpp vendor/clang/dist/lib/Sema/SemaInit.cpp vendor/clang/dist/lib/Sema/SemaInit.h vendor/clang/dist/lib/Sema/SemaLookup.cpp vendor/clang/dist/lib/Sema/SemaObjCProperty.cpp vendor/clang/dist/lib/Sema/SemaOverload.cpp vendor/clang/dist/lib/Sema/SemaOverload.h vendor/clang/dist/test/Analysis/dead-stores.c vendor/clang/dist/test/Analysis/misc-ps-region-store.m vendor/clang/dist/test/CXX/class.access/class.friend/p1.cpp vendor/clang/dist/test/CXX/class.access/p4.cpp vendor/clang/dist/test/CXX/class/class.union/p1.cpp vendor/clang/dist/test/CXX/temp/temp.decls/temp.friend/p1.cpp vendor/clang/dist/test/CodeGen/atomic.c vendor/clang/dist/test/CodeGenCXX/attr.cpp vendor/clang/dist/test/CodeGenCXX/deferred-global-init.cpp vendor/clang/dist/test/CodeGenCXX/global-init.cpp vendor/clang/dist/test/CodeGenCXX/mangle.cpp vendor/clang/dist/test/CodeGenCXX/vtable-layout.cpp vendor/clang/dist/test/Driver/darwin-ld.c vendor/clang/dist/test/Index/c-index-getCursor-test.m vendor/clang/dist/test/PCH/changed-files.c vendor/clang/dist/test/Sema/block-misc.c vendor/clang/dist/test/Sema/invalid-init-diag.c vendor/clang/dist/test/Sema/x86-intrinsics-headers.c vendor/clang/dist/test/SemaCXX/access-base-class.cpp vendor/clang/dist/test/SemaCXX/class.cpp vendor/clang/dist/test/SemaCXX/condition.cpp vendor/clang/dist/test/SemaCXX/conditional-expr.cpp vendor/clang/dist/test/SemaObjC/class-method-self.m vendor/clang/dist/test/SemaObjC/comptypes-1.m vendor/clang/dist/test/SemaObjC/id.m vendor/clang/dist/test/SemaObjC/invalid-code.m vendor/clang/dist/test/SemaObjC/ivar-in-class-extension.m vendor/clang/dist/test/SemaObjC/property-not-lvalue.m vendor/clang/dist/test/lit.cfg vendor/clang/dist/tools/CIndex/CIndex.cpp vendor/clang/dist/tools/CIndex/CIndex.exports vendor/clang/dist/tools/CIndex/CIndexUSRs.cpp vendor/clang/dist/tools/CIndex/CXCursor.cpp vendor/clang/dist/tools/CIndex/CXCursor.h vendor/clang/dist/tools/driver/cc1_main.cpp vendor/clang/dist/tools/driver/driver.cpp Modified: vendor/clang/dist/Makefile ============================================================================== --- vendor/clang/dist/Makefile Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/Makefile Sun Mar 21 10:50:08 2010 (r205408) @@ -18,7 +18,7 @@ $(RecursiveTargets):: endif test:: - @ $(MAKE) -C test + @ $(MAKE) -C test report:: @ $(MAKE) -C test report @@ -27,7 +27,8 @@ clean:: @ $(MAKE) -C test clean tags:: - $(Verb) etags `find . -type f -name \*.h | grep -v /lib/Headers | grep -v /test/` `find . -type f -name \*.cpp | grep -v /lib/Headers | grep -v /test/` + $(Verb) etags `find . -type f -name '*.h' -or -name '*.cpp' | \ + grep -v /lib/Headers | grep -v /test/` cscope.files: find tools lib include -name '*.cpp' \ Modified: vendor/clang/dist/VER ============================================================================== --- vendor/clang/dist/VER Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/VER Sun Mar 21 10:50:08 2010 (r205408) @@ -1 +1 @@ -1.1 +1.5 Added: vendor/clang/dist/docs/Block-ABI-Apple.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/docs/Block-ABI-Apple.txt Sun Mar 21 10:50:08 2010 (r205408) @@ -0,0 +1,669 @@ +Block Implementation Specification + +Copyright 2008-2010 Apple, Inc. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +0. History + +2008/7/14 - created +2008/8/21 - revised, C++ +2008/9/24 - add NULL isa field to __block storage +2008/10/1 - revise block layout to use a static descriptor structure +2008/10/6 - revise block layout to use an unsigned long int flags +2008/10/28 - specify use of _Block_object_assign/dispose for all "Object" types in helper functions +2008/10/30 - revise new layout to have invoke function in same place +2008/10/30 - add __weak support + +2010/3/16 - rev for stret return, signature field + +This document describes the Apple ABI implementation specification of Blocks. + +The first shipping version of this ABI is found in Mac OS X 10.6, and shall be referred to as 10.6.ABI. Proposals have been made to enhance the blocks compiler and runtime, and these changes would form a new ABI called post-10.6.ABI if these changes were ever shipped in a product, which is purely speculative. + +Since the Apple ABI references symbols from other elements of the system, any attempt to use this ABI on systems prior to SnowLeopard is undefined. + +1. High Level + +The ABI of blocks consist of their layout and the runtime functions required by the compiler. +A Block consists of a structure of the following form: + +struct Block_literal_1 { + void *isa; // initialized to &_NSConcreteStackBlock or &_NSConcreteGlobalBlock + int flags; + int reserved; + void (*invoke)(void *, ...); + struct Block_descriptor_1 { + unsigned long int reserved; // NULL + unsigned long int size; // sizeof(struct Block_literal_1) + // optional helper functions + void (*copy_helper)(void *dst, void *src); // IFF (1<<25) + void (*dispose_helper)(void *src); // IFF (1<<25) + // required post 10.6.ABI + const char *signature; // IFF (1<<30) + } *descriptor; + // imported variables +}; + +The following flags bits are in use thusly for a possible post.10.6.ABI: + +enum { + BLOCK_HAS_COPY_DISPOSE = (1 << 25), + BLOCK_HAS_CTOR = (1 << 26), // helpers have C++ code + BLOCK_IS_GLOBAL = (1 << 28), + BLOCK_HAS_STRET = (1 << 29), + BLOCK_HAS_SIGNATURE = (1 << 30), +}; + +In 10.6.ABI the (1<<29) was unconditionally set and ignored by the runtime - it was a transitional marker that did not get deleted after the transition. This bit is now paired with (1<<30), and represented as the pair (3<<30), for the following combinations of valid bit settings, and their meanings. + +switch (flags & (3<<29)) { + case (0<<29): , error + case (1<<29): 10.6.ABI, no signature field available + case (2<<29): post-10.6.ABI, regular calling convention, presence of signature field + case (3<<29): post-10.6.ABI, stret calling convention, presence of signature field, +} + +The following discussions are presented as 10.6.ABI otherwise. + +Block literals may occur within functions where the structure is created in stack local memory. They may also appear as initialization expressions for Block variables of global or static local variables. + +When a Block literal expression is evaluated the stack based structure is initialized as follows: + +1) static descriptor structure is declared and initialized as follows: +1a) the invoke function pointer is set to a function that takes the Block structure as its first argument and the rest of the arguments (if any) to the Block and executes the Block compound statement. +1b) the size field is set to the size of the following Block literal structure. +1c) the copy_helper and dispose_helper function pointers are set to respective helper functions if they are required by the Block literal +2) a stack (or global) Block literal data structure is created and initialized as follows: +2a) the isa field is set to the address of the external _NSConcreteStackBlock, which is a block of uninitialized memory supplied in libSystem, or _NSConcreteGlobalBlock if this is a static or file level block literal. +2) The flags field is set to zero unless there are variables imported into the block that need helper functions for program level Block_copy() and Block_release() operations, in which case the (1<<25) flags bit is set. + + +As an example, the Block literal expression + ^ { printf("hello world\n"); } +would cause to be created on a 32-bit system: + +struct __block_literal_1 { + void *isa; + int flags; + int reserved; + void (*invoke)(struct __block_literal_1 *); + struct __block_descriptor_1 *descriptor; +}; + +void __block_invoke_1(struct __block_literal_1 *_block) { + printf("hello world\n"); +} + +static struct __block_descriptor_1 { + unsigned long int reserved; + unsigned long int Block_size; +} __block_descriptor_1 = { 0, sizeof(struct __block_literal_1), __block_invoke_1 }; + +and where the block literal appeared + + struct __block_literal_1 _block_literal = { + &_NSConcreteStackBlock, + (1<<29), , + __block_invoke_1, + &__block_descriptor_1 + }; + +Blocks import other Block references, const copies of other variables, and variables marked __block. In Objective-C variables may additionally be objects. + +When a Block literal expression used as the initial value of a global or static local variable it is initialized as follows: + struct __block_literal_1 __block_literal_1 = { + &_NSConcreteGlobalBlock, + (1<<28)|(1<<29), , + __block_invoke_1, + &__block_descriptor_1 + }; +that is, a different address is provided as the first value and a particular (1<<28) bit is set in the flags field, and otherwise it is the same as for stack based Block literals. This is an optimization that can be used for any Block literal that imports no const or __block storage variables. + + +2. Imported Variables + +Variables of "auto" storage class are imported as const copies. Variables of "__block" storage class are imported as a pointer to an enclosing data structure. Global variables are simply referenced and not considered as imported. + +2.1 Imported const copy variables + +Automatic storage variables not marked with __block are imported as const copies. + +The simplest example is that of importing a variable of type int. + + int x = 10; + void (^vv)(void) = ^{ printf("x is %d\n", x); } + x = 11; + vv(); + +would be compiled + +struct __block_literal_2 { + void *isa; + int flags; + int reserved; + void (*invoke)(struct __block_literal_2 *); + struct __block_descriptor_2 *descriptor; + const int x; +}; + +void __block_invoke_2(struct __block_literal_2 *_block) { + printf("x is %d\n", _block->x); +} + +static struct __block_descriptor_2 { + unsigned long int reserved; + unsigned long int Block_size; +} __block_descriptor_2 = { 0, sizeof(struct __block_literal_2) }; + +and + + struct __block_literal_2 __block_literal_2 = { + &_NSConcreteStackBlock, + (1<<29), , + __block_invoke_2, + &__block_descriptor_2, + x + }; + +In summary, scalars, structures, unions, and function pointers are generally imported as const copies with no need for helper functions. + +2.2 Imported const copy of Block reference + +The first case where copy and dispose helper functions are required is for the case of when a block itself is imported. In this case both a copy_helper function and a dispose_helper function are needed. The copy_helper function is passed both the existing stack based pointer and the pointer to the new heap version and should call back into the runtime to actually do the copy operation on the imported fields within the block. The runtime functions are all described in Section 5.0 Runtime Helper Functions. + +An example: + + void (^existingBlock)(void) = ...; + void (^vv)(void) = ^{ existingBlock(); } + vv(); + +struct __block_literal_3 { + ...; // existing block +}; + +struct __block_literal_4 { + void *isa; + int flags; + int reserved; + void (*invoke)(struct __block_literal_4 *); + struct __block_literal_3 *const existingBlock; +}; + +void __block_invoke_4(struct __block_literal_2 *_block) { + __block->existingBlock->invoke(__block->existingBlock); +} + +void __block_copy_4(struct __block_literal_4 *dst, struct __block_literal_4 *src) { + //_Block_copy_assign(&dst->existingBlock, src->existingBlock, 0); + _Block_object_assign(&dst->existingBlock, src->existingBlock, BLOCK_FIELD_IS_BLOCK); +} + +void __block_dispose_4(struct __block_literal_4 *src) { + // was _Block_destroy + _Block_object_dispose(src->existingBlock, BLOCK_FIELD_IS_BLOCK); +} + +static struct __block_descriptor_4 { + unsigned long int reserved; + unsigned long int Block_size; + void (*copy_helper)(struct __block_literal_4 *dst, struct __block_literal_4 *src); + void (*dispose_helper)(struct __block_literal_4 *); +} __block_descriptor_4 = { + 0, + sizeof(struct __block_literal_4), + __block_copy_4, + __block_dispose_4, +}; + +and where it is used + + struct __block_literal_4 _block_literal = { + &_NSConcreteStackBlock, + (1<<25)|(1<<29), + __block_invoke_4, + & __block_descriptor_4 + existingBlock, + }; + +2.2.1 Importing __attribute__((NSObject)) variables. + +GCC introduces __attribute__((NSObject)) on structure pointers to mean "this is an object". This is useful because many low level data structures are declared as opaque structure pointers, e.g. CFStringRef, CFArrayRef, etc. When used from C, however, these are still really objects and are the second case where that requires copy and dispose helper functions to be generated. The copy helper functions generated by the compiler should use the _Block_object_assign runtime helper function and in the dispose helper the _Block_object_dispose runtime helper function should be called. + +For example, block xyzzy in the following + + struct Opaque *__attribute__((NSObject)) objectPointer = ...; + ... + void (^xyzzy)(void) = ^{ CFPrint(objectPointer); }; + +would have helper functions + +void __block_copy_xyzzy(struct __block_literal_5 *dst, struct __block_literal_5 *src) { + _Block_object_assign(&dst->objectPointer, src-> objectPointer, BLOCK_FIELD_IS_OBJECT); +} + +void __block_dispose_xyzzy(struct __block_literal_5 *src) { + _Block_object_dispose(src->objectPointer, BLOCK_FIELD_IS_OBJECT); +} + +generated. + + +2.3 Imported __block marked variables. + +2.3.1 Layout of __block marked variables + +The compiler must embed variables that are marked __block in a specialized structure of the form: + +struct _block_byref_xxxx { + void *isa; + struct Block_byref *forwarding; + int flags; //refcount; + int size; + typeof(marked_variable) marked_variable; +}; + +Variables of certain types require helper functions for when Block_copy() and Block_release() are performed upon a referencing Block. At the "C" level only variables that are of type Block or ones that have __attribute__((NSObject)) marked require helper functions. In Objective-C objects require helper functions and in C++ stack based objects require helper functions. Variables that require helper functions use the form: + +struct _block_byref_xxxx { + void *isa; + struct _block_byref_xxxx *forwarding; + int flags; //refcount; + int size; + // helper functions called via Block_copy() and Block_release() + void (*byref_keep)(void *dst, void *src); + void (*byref_dispose)(void *); + typeof(marked_variable) marked_variable; +}; + +The structure is initialized such that + a) the forwarding pointer is set to the beginning of its enclosing structure, + b) the size field is initialized to the total size of the enclosing structure, + c) the flags field is set to either 0 if no helper functions are needed or (1<<25) if they are, + d) the helper functions are initialized (if present) + e) the variable itself is set to its initial value. + f) the isa field is set to NULL + +2.3.2 Access to __block variables from within its lexical scope. + +In order to "move" the variable to the heap upon a copy_helper operation the compiler must rewrite access to such a variable to be indirect through the structures forwarding pointer. For example: + + int __block i = 10; + i = 11; + +would be rewritten to be: + + struct _block_byref_i { + void *isa; + struct _block_byref_i *forwarding; + int flags; //refcount; + int size; + int captured_i; + } i = { NULL, &i, 0, sizeof(struct _block_byref_i), 11 }; + + i.forwarding->captured_i = 11; + +In the case of a Block reference variable being marked __block the helper code generated must use the _Block_object_assign and _Block_object_dispose routines supplied by the runtime to make the copies. For example: + + __block void (voidBlock)(void) = blockA; + voidBlock = blockB; + +would translate into + +struct _block_byref_voidBlock { + void *isa; + struct _block_byref_voidBlock *forwarding; + int flags; //refcount; + int size; + void (*byref_keep)(struct _block_byref_voidBlock *dst, struct _block_byref_voidBlock *src); + void (*byref_dispose)(struct _block_byref_voidBlock *); + void (^captured_voidBlock)(void); +}; + +void _block_byref_keep_helper(struct _block_byref_voidBlock *dst, struct _block_byref_voidBlock *src) { + //_Block_copy_assign(&dst->captured_voidBlock, src->captured_voidBlock, 0); + _Block_object_assign(&dst->captured_voidBlock, src->captured_voidBlock, BLOCK_FIELD_IS_BLOCK | BLOCK_BYREF_CALLER); +} + +void _block_byref_dispose_helper(struct _block_byref_voidBlock *param) { + //_Block_destroy(param->captured_voidBlock, 0); + _Block_object_dispose(param->captured_voidBlock, BLOCK_FIELD_IS_BLOCK | BLOCK_BYREF_CALLER)} + +and + struct _block_byref_voidBlock voidBlock = {( .forwarding=&voidBlock, .flags=(1<<25), .size=sizeof(struct _block_byref_voidBlock *), + .byref_keep=_block_byref_keep_helper, .byref_dispose=_block_byref_dispose_helper, + .captured_voidBlock=blockA }; + + voidBlock.forwarding->captured_voidBlock = blockB; + + +2.3.3 Importing __block variables into Blocks + +A Block that uses a __block variable in its compound statement body must import the variable and emit copy_helper and dispose_helper helper functions that, in turn, call back into the runtime to actually copy or release the byref data block using the functions _Block_object_assign and _Block_object_dispose. + +For example: + + int __block i = 2; + functioncall(^{ i = 10; }); + +would translate to + +struct _block_byref_i { + void *isa; // set to NULL + struct _block_byref_voidBlock *forwarding; + int flags; //refcount; + int size; + void (*byref_keep)(struct _block_byref_i *dst, struct _block_byref_i *src); + void (*byref_dispose)(struct _block_byref_i *); + int captured_i; +}; + + +struct __block_literal_5 { + void *isa; + int flags; + int reserved; + void (*invoke)(struct __block_literal_5 *); + struct __block_descriptor_5 *descriptor; + struct _block_byref_i *i_holder; +}; + +void __block_invoke_5(struct __block_literal_5 *_block) { + _block->forwarding->captured_i = 10; +} + +void __block_copy_5(struct __block_literal_5 *dst, struct __block_literal_5 *src) { + //_Block_byref_assign_copy(&dst->captured_i, src->captured_i); + _Block_object_assign(&dst->captured_i, src->captured_i, BLOCK_FIELD_IS_BYREF | BLOCK_BYREF_CALLER); +} + +void __block_dispose_5(struct __block_literal_5 *src) { + //_Block_byref_release(src->captured_i); + _Block_object_dispose(src->captured_i, BLOCK_FIELD_IS_BYREF | BLOCK_BYREF_CALLER); +} + +static struct __block_descriptor_5 { + unsigned long int reserved; + unsigned long int Block_size; + void (*copy_helper)(struct __block_literal_5 *dst, struct __block_literal_5 *src); + void (*dispose_helper)(struct __block_literal_5 *); +} __block_descriptor_5 = { 0, sizeof(struct __block_literal_5) __block_copy_5, __block_dispose_5 }; + +and + + struct _block_byref_i i = {( .forwarding=&i, .flags=0, .size=sizeof(struct _block_byref_i) )}; + struct __block_literal_5 _block_literal = { + &_NSConcreteStackBlock, + (1<<25)|(1<<29), , + __block_invoke_5, + &__block_descriptor_5, + 2, + }; + +2.3.4 Importing __attribute__((NSObject)) __block variables + +A __block variable that is also marked __attribute__((NSObject)) should have byref_keep and byref_dispose helper functions that use _Block_object_assign and _Block_object_dispose. + +2.3.5 __block escapes + +Because Blocks referencing __block variables may have Block_copy() performed upon them the underlying storage for the variables may move to the heap. In Objective-C Garbage Collection Only compilation environments the heap used is the garbage collected one and no further action is required. Otherwise the compiler must issue a call to potentially release any heap storage for __block variables at all escapes or terminations of their scope. + + +2.3.6 Nesting + +Blocks may contain Block literal expressions. Any variables used within inner blocks are imported into all enclosing Block scopes even if the variables are not used. This includes const imports as well as __block variables. + +3. Objective C Extensions to Blocks + +3.1 Importing Objects + +Objects should be treated as __attribute__((NSObject)) variables; all copy_helper, dispose_helper, byref_keep, and byref_dispose helper functions should use _Block_object_assign and _Block_object_dispose. There should be no code generated that uses -retain or -release methods. + + +3.2 Blocks as Objects + +The compiler will treat Blocks as objects when synthesizing property setters and getters, will characterize them as objects when generating garbage collection strong and weak layout information in the same manner as objects, and will issue strong and weak write-barrier assignments in the same manner as objects. + +3.3 __weak __block Support + +Objective-C (and Objective-C++) support the __weak attribute on __block variables. Under normal circumstances the compiler uses the Objective-C runtime helper support functions objc_assign_weak and objc_read_weak. Both should continue to be used for all reads and writes of __weak __block variables: + objc_read_weak(&block->byref_i->forwarding->i) + +The __weak variable is stored in a _block_byref_xxxx structure and the Block has copy and dispose helpers for this structure that call: + _Block_object_assign(&dest->_block_byref_i, src-> _block_byref_i, BLOCK_FIELD_IS_WEAK | BLOCK_FIELD_IS_BYREF); +and + _Block_object_dispose(src->_block_byref_i, BLOCK_FIELD_IS_WEAK | BLOCK_FIELD_IS_BYREF); + + +In turn, the block_byref copy support helpers distinguish between whether the __block variable is a Block or not and should either call: + _Block_object_assign(&dest->_block_byref_i, src->_block_byref_i, BLOCK_FIELD_IS_WEAK | BLOCK_FIELD_IS_OBJECT | BLOCK_BYREF_CALLER); +for something declared as an object or + _Block_object_assign(&dest->_block_byref_i, src->_block_byref_i, BLOCK_FIELD_IS_WEAK | BLOCK_FIELD_IS_BLOCK | BLOCK_BYREF_CALLER); +for something declared as a Block. + +A full example follows: + + + __block __weak id obj = ; + functioncall(^{ [obj somemessage]; }); + +would translate to + +struct _block_byref_obj { + void *isa; // uninitialized + struct _block_byref_obj *forwarding; + int flags; //refcount; + int size; + void (*byref_keep)(struct _block_byref_i *dst, struct _block_byref_i *src); + void (*byref_dispose)(struct _block_byref_i *); + int captured_obj; +}; + +void _block_byref_obj_keep(struct _block_byref_voidBlock *dst, struct _block_byref_voidBlock *src) { + //_Block_copy_assign(&dst->captured_obj, src->captured_obj, 0); + _Block_object_assign(&dst->captured_obj, src->captured_obj, BLOCK_FIELD_IS_OBJECT | BLOCK_FIELD_IS_WEAK | BLOCK_BYREF_CALLER); +} + +void _block_byref_obj_dispose(struct _block_byref_voidBlock *param) { + //_Block_destroy(param->captured_obj, 0); + _Block_object_dispose(param->captured_obj, BLOCK_FIELD_IS_OBJECT | BLOCK_FIELD_IS_WEAK | BLOCK_BYREF_CALLER); +}; + +for the block byref part and + +struct __block_literal_5 { + void *isa; + int flags; + int reserved; + void (*invoke)(struct __block_literal_5 *); + struct __block_descriptor_5 *descriptor; + struct _block_byref_obj *byref_obj; +}; + +void __block_invoke_5(struct __block_literal_5 *_block) { + [objc_read_weak(&_block->byref_obj->forwarding->captured_obj) somemessage]; +} + +void __block_copy_5(struct __block_literal_5 *dst, struct __block_literal_5 *src) { + //_Block_byref_assign_copy(&dst->byref_obj, src->byref_obj); + _Block_object_assign(&dst->byref_obj, src->byref_obj, BLOCK_FIELD_IS_BYREF | BLOCK_FIELD_IS_WEAK); +} + +void __block_dispose_5(struct __block_literal_5 *src) { + //_Block_byref_release(src->byref_obj); + _Block_object_dispose(src->byref_obj, BLOCK_FIELD_IS_BYREF | BLOCK_FIELD_IS_WEAK); +} + +static struct __block_descriptor_5 { + unsigned long int reserved; + unsigned long int Block_size; + void (*copy_helper)(struct __block_literal_5 *dst, struct __block_literal_5 *src); + void (*dispose_helper)(struct __block_literal_5 *); +} __block_descriptor_5 = { 0, sizeof(struct __block_literal_5), __block_copy_5, __block_dispose_5 }; + +and within the compound statement: + + struct _block_byref_obj obj = {( .forwarding=&obj, .flags=(1<<25), .size=sizeof(struct _block_byref_obj), + .byref_keep=_block_byref_obj_keep, .byref_dispose=_block_byref_obj_dispose, + .captured_obj = )}; + + struct __block_literal_5 _block_literal = { + &_NSConcreteStackBlock, + (1<<25)|(1<<29), , + __block_invoke_5, + &__block_descriptor_5, + &obj, // a reference to the on-stack structure containing "captured_obj" + }; + + + functioncall(_block_literal->invoke(&_block_literal)); + + +4.0 C++ Support + +Within a block stack based C++ objects are copied as const copies using the const copy constructor. It is an error if a stack based C++ object is used within a block if it does not have a const copy constructor. In addition both copy and destroy helper routines must be synthesized for the block to support the Block_copy() operation, and the flags work marked with the (1<<26) bit in addition to the (1<<25) bit. The copy helper should call the constructor using appropriate offsets of the variable within the supplied stack based block source and heap based destination for all const constructed copies, and similarly should call the destructor in the destroy routine. + +As an example, suppose a C++ class FOO existed with a const copy constructor. Within a code block a stack version of a FOO object is declared and used within a Block literal expression: + +{ + FOO foo; + void (^block)(void) = ^{ printf("%d\n", foo.value()); }; +} + +The compiler would synthesize + +struct __block_literal_10 { + void *isa; + int flags; + int reserved; + void (*invoke)(struct __block_literal_10 *); + struct __block_descriptor_10 *descriptor; + const FOO foo; +}; + +void __block_invoke_10(struct __block_literal_10 *_block) { + printf("%d\n", _block->foo.value()); +} + +void __block_literal_10(struct __block_literal_10 *dst, struct __block_literal_10 *src) { + comp_ctor(&dst->foo, &src->foo); +} + +void __block_dispose_10(struct __block_literal_10 *src) { + comp_dtor(&src->foo); +} + +static struct __block_descriptor_10 { + unsigned long int reserved; + unsigned long int Block_size; + void (*copy_helper)(struct __block_literal_10 *dst, struct __block_literal_10 *src); + void (*dispose_helper)(struct __block_literal_10 *); +} __block_descriptor_10 = { 0, sizeof(struct __block_literal_10), __block_copy_10, __block_dispose_10 }; + +and the code would be: +{ + FOO foo; + comp_ctor(&foo); // default constructor + struct __block_literal_10 _block_literal = { + &_NSConcreteStackBlock, + (1<<25)|(1<<26)|(1<<29), , + __block_invoke_10, + &__block_descriptor_10, + }; + comp_ctor(&_block_literal->foo, &foo); // const copy into stack version + struct __block_literal_10 &block = &_block_literal; // assign literal to block variable + block->invoke(block); // invoke block + comp_dtor(&_block_literal->foo); // destroy stack version of const block copy + comp_dtor(&foo); // destroy original version +} + + +C++ objects stored in __block storage start out on the stack in a block_byref data structure as do other variables. Such objects (if not const objects) must support a regular copy constructor. The block_byref data structure will have copy and destroy helper routines synthesized by the compiler. The copy helper will have code created to perform the copy constructor based on the initial stack block_byref data structure, and will also set the (1<<26) bit in addition to the (1<<25) bit. The destroy helper will have code to do the destructor on the object stored within the supplied block_byref heap data structure. + +To support member variable and function access the compiler will synthesize a const pointer to a block version of the this pointer. + +5.0 Runtime Helper Functions + +The runtime helper functions are described in /usr/local/include/Block_private.h. To summarize their use, a block requires copy/dispose helpers if it imports any block variables, __block storage variables, __attribute__((NSObject)) variables, or C++ const copied objects with constructor/destructors. The (1<<26) bit is set and functions are generated. + +The block copy helper function should, for each of the variables of the type mentioned above, call + _Block_object_assign(&dst->target, src->target, BLOCK_FIELD_); +in the copy helper and + _Block_object_dispose(->target, BLOCK_FIELD_); +in the dispose helper where + is + +enum { + BLOCK_FIELD_IS_OBJECT = 3, // id, NSObject, __attribute__((NSObject)), block, ... + BLOCK_FIELD_IS_BLOCK = 7, // a block variable + BLOCK_FIELD_IS_BYREF = 8, // the on stack structure holding the __block variable + + BLOCK_FIELD_IS_WEAK = 16, // declared __weak + + BLOCK_BYREF_CALLER = 128, // called from byref copy/dispose helpers +}; + +and of course the CTORs/DTORs for const copied C++ objects. + +The block_byref data structure similarly requires copy/dispose helpers for block variables, __attribute__((NSObject)) variables, or C++ const copied objects with constructor/destructors, and again the (1<<26) bit is set and functions are generated in the same manner. + +Under ObjC we allow __weak as an attribute on __block variables, and this causes the addition of BLOCK_FIELD_IS_WEAK orred onto the BLOCK_FIELD_IS_BYREF flag when copying the block_byref structure in the block copy helper, and onto the BLOCK_FIELD_ field within the block_byref copy/dispose helper calls. + +The prototypes, and summary, of the helper functions are + +/* Certain field types require runtime assistance when being copied to the heap. The following function is used + to copy fields of types: blocks, pointers to byref structures, and objects (including __attribute__((NSObject)) pointers. + BLOCK_FIELD_IS_WEAK is orthogonal to the other choices which are mutually exclusive. + Only in a Block copy helper will one see BLOCK_FIELD_IS_BYREF. + */ +void _Block_object_assign(void *destAddr, const void *object, const int flags); + +/* Similarly a compiler generated dispose helper needs to call back for each field of the byref data structure. + (Currently the implementation only packs one field into the byref structure but in principle there could be more). + The same flags used in the copy helper should be used for each call generated to this function: + */ +void _Block_object_dispose(const void *object, const int flags); + +The following functions have been used and will continue to be supported until new compiler support is complete. + +// Obsolete functions. +// Copy helper callback for copying a block imported into a Block +// Called by copy_helper helper functions synthesized by the compiler. +// The address in the destination block of an imported Block is provided as the first argument +// and the value of the existing imported Block is the second. +// Use: _Block_object_assign(dest, src, BLOCK_FIELD_IS_BLOCK {| BLOCK_FIELD_IS_WEAK}); +void _Block_copy_assign(struct Block_basic **dest, const struct Block_basic *src, const int flags); + +// Destroy helper callback for releasing Blocks imported into a Block +// Called by dispose_helper helper functions synthesized by the compiler. +// The value of the imported Block variable is passed back. +// Use: _Block_object_dispose(src, BLOCK_FIELD_IS_BLOCK {| BLOCK_FIELD_IS_WEAK}); +void _Block_destroy(const struct Block_basic *src, const int flags); + +// Byref data block copy helper callback +// Called by block copy helpers when copying __block structures +// Use: _Block_object_assign(dest, src, BLOCK_FIELD_IS_BYREF {| BLOCK_FIELD_IS_WEAK}); +void _Block_byref_assign_copy(struct Block_byref **destp, struct Block_byref *src); + +// Byref data block release helper callback +// Called by block release helpers when releasing a Block +// Called at escape points in scope where __block variables live (under non-GC-only conditions) +// Use: _Block_object_dispose(src, BLOCK_FIELD_IS_BYREF {| BLOCK_FIELD_IS_WEAK}); +void §(struct Block_byref *shared_struct); + + Modified: vendor/clang/dist/docs/LanguageExtensions.html ============================================================================== --- vendor/clang/dist/docs/LanguageExtensions.html Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/docs/LanguageExtensions.html Sun Mar 21 10:50:08 2010 (r205408) @@ -315,7 +315,7 @@ enabled. clang does not yet fully implem

        The syntax and high level language feature description is in BlockLanguageSpec.txt. Implementation and ABI details for the clang implementation are in BlockImplementation.txt.

        +href="Block-ABI-Apple.txt">Block-ABI-Apple.txt.

        Query for this feature with __has_feature(blocks).

        Modified: vendor/clang/dist/docs/UsersManual.html ============================================================================== --- vendor/clang/dist/docs/UsersManual.html Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/docs/UsersManual.html Sun Mar 21 10:50:08 2010 (r205408) @@ -796,6 +796,13 @@ ask on the mailing list about how you ca

        Note that released Clang compilers will refuse to even try to use clang to compile C++ code unless you pass the -ccc-clang-cxx option to the driver. To turn on Clang's C++ support, please pass that flag. Clang compilers built from the Subversion trunk enable C++ support by default, and do not require the -ccc-clang-cxx flag.

        +

        Clang strives to strictly conform to the C++ standard. That means +it will reject invalid C++ code that another compiler may accept. If +Clang reports errors in your code, please check +the C++ +Compatibility page to see whether they are C++-conformance bugs +and how you can fix them.

        +

        Objective C++ Language Features

        Modified: vendor/clang/dist/include/clang-c/Index.h ============================================================================== --- vendor/clang/dist/include/clang-c/Index.h Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/include/clang-c/Index.h Sun Mar 21 10:50:08 2010 (r205408) @@ -728,7 +728,8 @@ enum CXCursorKind { CXCursor_InvalidFile = 70, CXCursor_NoDeclFound = 71, CXCursor_NotImplemented = 72, - CXCursor_LastInvalid = 72, + CXCursor_InvalidCode = 73, + CXCursor_LastInvalid = CXCursor_InvalidCode, /* Expressions */ CXCursor_FirstExpr = 100, @@ -796,7 +797,14 @@ enum CXCursorKind { CXCursor_IBActionAttr = 401, CXCursor_IBOutletAttr = 402, - CXCursor_LastAttr = CXCursor_IBOutletAttr + CXCursor_LastAttr = CXCursor_IBOutletAttr, + + /* Preprocessing */ + CXCursor_PreprocessingDirective = 500, + CXCursor_MacroDefinition = 501, + CXCursor_MacroInstantiation = 502, + CXCursor_FirstPreprocessing = CXCursor_PreprocessingDirective, + CXCursor_LastPreprocessing = CXCursor_MacroInstantiation }; /** @@ -889,6 +897,12 @@ CINDEX_LINKAGE unsigned clang_isInvalid( CINDEX_LINKAGE unsigned clang_isTranslationUnit(enum CXCursorKind); /*** + * \brief Determine whether the given cursor represents a preprocessing + * element, such as a preprocessor directive or macro instantiation. + */ +CINDEX_LINKAGE unsigned clang_isPreprocessing(enum CXCursorKind); + +/*** * \brief Determine whether the given cursor represents a currently * unexposed piece of the AST (e.g., CXCursor_UnexposedStmt). */ Modified: vendor/clang/dist/include/clang/AST/ASTContext.h ============================================================================== --- vendor/clang/dist/include/clang/AST/ASTContext.h Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/include/clang/AST/ASTContext.h Sun Mar 21 10:50:08 2010 (r205408) @@ -259,19 +259,11 @@ class ASTContext { /// this ASTContext object. LangOptions LangOpts; - /// \brief Whether we have already loaded comment source ranges from an - /// external source. - bool LoadedExternalComments; - /// MallocAlloc/BumpAlloc - The allocator objects used to create AST objects. bool FreeMemory; llvm::MallocAllocator MallocAlloc; llvm::BumpPtrAllocator BumpAlloc; - /// \brief Mapping from declarations to their comments, once we have - /// already looked up the comment associated with a given declaration. - llvm::DenseMap DeclComments; - public: const TargetInfo &Target; IdentifierTable &Idents; @@ -287,10 +279,6 @@ public: QualType ObjCClassRedefinitionType; QualType ObjCSelRedefinitionType; - /// \brief Source ranges for all of the comments in the source file, - /// sorted in order of appearance in the translation unit. - std::vector Comments; - SourceManager& getSourceManager() { return SourceMgr; } const SourceManager& getSourceManager() const { return SourceMgr; } void *Allocate(unsigned Size, unsigned Align = 8) { @@ -357,8 +345,6 @@ public: TranslationUnitDecl *getTranslationUnitDecl() const { return TUDecl; } - const char *getCommentForDecl(const Decl *D); - // Builtin Types. CanQualType VoidTy; CanQualType BoolTy; @@ -1161,6 +1147,8 @@ public: /// Compatibility predicates used to check assignment expressions. bool typesAreCompatible(QualType, QualType); // C99 6.2.7p1 + bool typesAreBlockPointerCompatible(QualType, QualType); + bool isObjCIdType(QualType T) const { return T == ObjCIdTypedefType; } @@ -1179,13 +1167,16 @@ public: const ObjCObjectPointerType *RHSOPT); bool canAssignObjCInterfaces(const ObjCInterfaceType *LHS, const ObjCInterfaceType *RHS); + bool canAssignObjCInterfacesInBlockPointer( + const ObjCObjectPointerType *LHSOPT, + const ObjCObjectPointerType *RHSOPT); 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); + QualType mergeTypes(QualType, QualType, bool OfBlockPointer=false); + QualType mergeFunctionTypes(QualType, QualType, bool OfBlockPointer=false); /// UsualArithmeticConversionsType - handles the various conversions /// that are common to binary operators (C99 6.3.1.8, C++ [expr]p9) @@ -1312,10 +1303,10 @@ static inline Selector GetUnarySelector( /// this ever changes, this operator will have to be changed, too.) /// Usage looks like this (assuming there's an ASTContext 'Context' in scope): /// @code -/// // Default alignment (16) +/// // Default alignment (8) /// IntegerLiteral *Ex = new (Context) IntegerLiteral(arguments); /// // Specific alignment -/// IntegerLiteral *Ex2 = new (Context, 8) IntegerLiteral(arguments); +/// IntegerLiteral *Ex2 = new (Context, 4) IntegerLiteral(arguments); /// @endcode /// Please note that you cannot use delete on the pointer; it must be /// deallocated using an explicit destructor call followed by @@ -1346,10 +1337,10 @@ inline void operator delete(void *Ptr, c /// null on error. /// Usage looks like this (assuming there's an ASTContext 'Context' in scope): /// @code -/// // Default alignment (16) +/// // Default alignment (8) /// char *data = new (Context) char[10]; /// // Specific alignment -/// char *data = new (Context, 8) char[10]; +/// char *data = new (Context, 4) char[10]; /// @endcode /// Please note that you cannot use delete on the pointer; it must be /// deallocated using an explicit destructor call followed by @@ -1361,7 +1352,7 @@ inline void operator delete(void *Ptr, c /// allocator supports it). /// @return The allocated memory. Could be NULL. inline void *operator new[](size_t Bytes, clang::ASTContext& C, - size_t Alignment = 16) throw () { + size_t Alignment = 8) throw () { return C.Allocate(Bytes, Alignment); } Modified: vendor/clang/dist/include/clang/AST/Expr.h ============================================================================== --- vendor/clang/dist/include/clang/AST/Expr.h Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/include/clang/AST/Expr.h Sun Mar 21 10:50:08 2010 (r205408) @@ -150,7 +150,6 @@ public: LV_InvalidExpression, LV_MemberFunction, LV_SubObjCPropertySetting, - LV_SubObjCPropertyGetterSetting, LV_ClassTemporary }; isLvalueResult isLvalue(ASTContext &Ctx) const; @@ -182,7 +181,6 @@ public: MLV_NoSetterProperty, MLV_MemberFunction, MLV_SubObjCPropertySetting, - MLV_SubObjCPropertyGetterSetting, MLV_ClassTemporary }; isModifiableLvalueResult isModifiableLvalue(ASTContext &Ctx, Modified: vendor/clang/dist/include/clang/AST/ExternalASTSource.h ============================================================================== --- vendor/clang/dist/include/clang/AST/ExternalASTSource.h Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/include/clang/AST/ExternalASTSource.h Sun Mar 21 10:50:08 2010 (r205408) @@ -58,14 +58,6 @@ public: virtual ~ExternalASTSource(); - /// \brief Reads the source ranges that correspond to comments from - /// an external AST source. - /// - /// \param Comments the contents of this vector will be - /// replaced with the sorted set of source ranges corresponding to - /// comments in the source code. - virtual void ReadComments(std::vector &Comments) = 0; - /// \brief Resolve a type ID into a type, potentially building a new /// type. virtual QualType GetType(uint32_t ID) = 0; Modified: vendor/clang/dist/include/clang/AST/Stmt.h ============================================================================== --- vendor/clang/dist/include/clang/AST/Stmt.h Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/include/clang/AST/Stmt.h Sun Mar 21 10:50:08 2010 (r205408) @@ -126,12 +126,12 @@ public: // Only allow allocation of Stmts using the allocator in ASTContext // or by doing a placement new. void* operator new(size_t bytes, ASTContext& C, - unsigned alignment = 16) throw() { + unsigned alignment = 8) throw() { return ::operator new(bytes, C, alignment); } void* operator new(size_t bytes, ASTContext* C, - unsigned alignment = 16) throw() { + unsigned alignment = 8) throw() { return ::operator new(bytes, *C, alignment); } Modified: vendor/clang/dist/include/clang/AST/UnresolvedSet.h ============================================================================== --- vendor/clang/dist/include/clang/AST/UnresolvedSet.h Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/include/clang/AST/UnresolvedSet.h Sun Mar 21 10:50:08 2010 (r205408) @@ -94,6 +94,7 @@ public: NamedDecl *getDecl() const { return ir->getDecl(); } AccessSpecifier getAccess() const { return ir->getAccess(); } + DeclAccessPair getPair() const { return *ir; } NamedDecl *operator*() const { return getDecl(); } Modified: vendor/clang/dist/include/clang/Basic/BuiltinsX86.def ============================================================================== --- vendor/clang/dist/include/clang/Basic/BuiltinsX86.def Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/include/clang/Basic/BuiltinsX86.def Sun Mar 21 10:50:08 2010 (r205408) @@ -293,4 +293,28 @@ BUILTIN(__builtin_ia32_ptestnzc128, "iV2 BUILTIN(__builtin_ia32_pcmpeqq, "V2LLiV2LLiV2LLi", "") BUILTIN(__builtin_ia32_mpsadbw128, "V16cV16cV16ci", "") +// SSE 4.2 +BUILTIN(__builtin_ia32_pcmpistrm128, "V16cV16cV16cc", "") +BUILTIN(__builtin_ia32_pcmpistri128, "iV16cV16cc", "") +BUILTIN(__builtin_ia32_pcmpestrm128, "V16cV16ciV16cic", "") +BUILTIN(__builtin_ia32_pcmpestri128, "iV16ciV16cic","") + +BUILTIN(__builtin_ia32_pcmpistria128, "iV16ciV16cic","") +BUILTIN(__builtin_ia32_pcmpistric128, "iV16ciV16cic","") +BUILTIN(__builtin_ia32_pcmpistrio128, "iV16ciV16cic","") +BUILTIN(__builtin_ia32_pcmpistris128, "iV16ciV16cic","") +BUILTIN(__builtin_ia32_pcmpistriz128, "iV16ciV16cic","") + +BUILTIN(__builtin_ia32_pcmpestria128, "iV16ciV16cic","") +BUILTIN(__builtin_ia32_pcmpestric128, "iV16ciV16cic","") +BUILTIN(__builtin_ia32_pcmpestrio128, "iV16ciV16cic","") +BUILTIN(__builtin_ia32_pcmpestris128, "iV16ciV16cic","") +BUILTIN(__builtin_ia32_pcmpestriz128, "iV16ciV16cic","") + +BUILTIN(__builtin_ia32_pcmpgtq, "V2LLiV2LLiV2LLi", "") + +BUILTIN(__builtin_ia32_crc32qi, "iic", "") +BUILTIN(__builtin_ia32_crc32hi, "iis", "") +BUILTIN(__builtin_ia32_crc32si, "iii", "") +BUILTIN(__builtin_ia32_crc32di, "LLiLLiLLi", "") #undef BUILTIN Modified: vendor/clang/dist/include/clang/Basic/DiagnosticCommonKinds.td ============================================================================== --- vendor/clang/dist/include/clang/Basic/DiagnosticCommonKinds.td Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/include/clang/Basic/DiagnosticCommonKinds.td Sun Mar 21 10:50:08 2010 (r205408) @@ -65,9 +65,6 @@ def err_target_invalid_feature : Error<" // Source manager def err_cannot_open_file : Error<"cannot open file '%0': %1">, DefaultFatal; -def err_file_size_changed : Error< - "size of file '%0' changed since it was first processed (from %1 to %2)">, - DefaultFatal; def err_file_modified : Error< "file '%0' modified since it was first processed">, DefaultFatal; Modified: vendor/clang/dist/include/clang/Basic/DiagnosticDriverKinds.td ============================================================================== --- vendor/clang/dist/include/clang/Basic/DiagnosticDriverKinds.td Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/include/clang/Basic/DiagnosticDriverKinds.td Sun Mar 21 10:50:08 2010 (r205408) @@ -64,6 +64,8 @@ def err_drv_invalid_remap_file : Error< "invalid option '%0' not of the form ;">; def err_drv_invalid_gcc_output_type : Error< "invalid output type '%0' for use with gcc tool">; +def err_drv_cc_print_options_failure : Error< + "unable to open CC_PRINT_OPTIONS file: %0">; def warn_drv_input_file_unused : Warning< "%0: '%1' input unused when '%2' is present">; Modified: vendor/clang/dist/include/clang/Basic/DiagnosticFrontendKinds.td ============================================================================== --- vendor/clang/dist/include/clang/Basic/DiagnosticFrontendKinds.td Sun Mar 21 10:49:05 2010 (r205407) +++ vendor/clang/dist/include/clang/Basic/DiagnosticFrontendKinds.td Sun Mar 21 10:50:08 2010 (r205408) @@ -51,12 +51,16 @@ def err_fe_unable_to_read_pch_file : Err "unable to read PCH file: '%0'">; def err_fe_not_a_pch_file : Error< "input is not a PCH file: '%0'">; +def err_fe_pch_malformed : Error< + "malformed or corrupted PCH file: '%0'">, DefaultFatal; def err_fe_pch_malformed_block : Error< - "malformed block record in PCH file: '%0'">; + "malformed block record in PCH file: '%0'">, DefaultFatal; def err_fe_pch_error_at_end_block : Error< - "error at end of module block in PCH file: '%0'">; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Mon Mar 22 10:58:16 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 592BC1065675; Mon, 22 Mar 2010 10:58:16 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 497A88FC1B; Mon, 22 Mar 2010 10:58:16 +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 o2MAwGrb000438; Mon, 22 Mar 2010 10:58:16 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2MAwGba000436; Mon, 22 Mar 2010 10:58:16 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201003221058.o2MAwGba000436@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Mon, 22 Mar 2010 10:58:16 +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: r205440 - vendor/openpam/dist/include/security 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: Mon, 22 Mar 2010 10:58:16 -0000 Author: des Date: Mon Mar 22 10:58:16 2010 New Revision: 205440 URL: http://svn.freebsd.org/changeset/base/205440 Log: Merge upstream r432: pam_end() already contains a NULL check, and it is not unreasonable to call it with a NULL pamh in a cleanup / error-handling situation. Remove OPENPAM_NONNULL, which may cause gcc to optimize away the NULL check. Modified: vendor/openpam/dist/include/security/pam_appl.h Modified: vendor/openpam/dist/include/security/pam_appl.h ============================================================================== --- vendor/openpam/dist/include/security/pam_appl.h Mon Mar 22 10:11:59 2010 (r205439) +++ vendor/openpam/dist/include/security/pam_appl.h Mon Mar 22 10:58:16 2010 (r205440) @@ -72,8 +72,7 @@ pam_close_session(pam_handle_t *_pamh, int pam_end(pam_handle_t *_pamh, - int _status) - OPENPAM_NONNULL((1)); + int _status); int pam_get_data(const pam_handle_t *_pamh, From owner-svn-src-vendor@FreeBSD.ORG Mon Mar 22 21:25:08 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 D9CC9106564A; Mon, 22 Mar 2010 21:25:08 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BCEFD8FC08; Mon, 22 Mar 2010 21:25:08 +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 o2MLP8Qk044291; Mon, 22 Mar 2010 21:25:08 GMT (envelope-from edwin@svn.freebsd.org) Received: (from edwin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2MLP8ZI044286; Mon, 22 Mar 2010 21:25:08 GMT (envelope-from edwin@svn.freebsd.org) Message-Id: <201003222125.o2MLP8ZI044286@svn.freebsd.org> From: Edwin Groothuis Date: Mon, 22 Mar 2010 21:25:08 +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: r205473 - vendor/tzdata/dist 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: Mon, 22 Mar 2010 21:25:08 -0000 Author: edwin Date: Mon Mar 22 21:25:08 2010 New Revision: 205473 URL: http://svn.freebsd.org/changeset/base/205473 Log: Vendor import of tzdata2010f: The Australian Antartic Division: - Macquarie Island will stay on UTC+11 for winter and not switch back from DST. - Casey station reverted to its normal time of UTC+8 on 5 March 2010. - Davis station will revert to its normal time of UTC+7 at 10 March 2010 - Mawson station stays on UTC+5. Syria will start DST on Thursday 1 April 2010 at midnight. Correct Samao DST start date (26 Sep vs 24 Oct) Obtained from: ftp://elsie.nci.nih.gov/pub/ Modified: vendor/tzdata/dist/antarctica vendor/tzdata/dist/asia vendor/tzdata/dist/australasia vendor/tzdata/dist/zone.tab Modified: vendor/tzdata/dist/antarctica ============================================================================== --- vendor/tzdata/dist/antarctica Mon Mar 22 21:19:17 2010 (r205472) +++ vendor/tzdata/dist/antarctica Mon Mar 22 21:25:08 2010 (r205473) @@ -1,5 +1,5 @@ #
        -# @(#)antarctica	8.7
        +# @(#)antarctica	8.8
         # This file is in the public domain, so clarified as of
         # 2009-05-17 by Arthur David Olson.
         
        @@ -57,6 +57,33 @@ Rule	ChileAQ	1999	only	-	Apr	 4	3:00u	0	
         Rule	ChileAQ	1999	max	-	Oct	Sun>=9	4:00u	1:00	S
         Rule	ChileAQ	2000	max	-	Mar	Sun>=9	3:00u	0	-
         
        +# These rules are stolen from the `australasia' file.
        +Rule	AusAQ	1917	only	-	Jan	 1	0:01	1:00	-
        +Rule	AusAQ	1917	only	-	Mar	25	2:00	0	-
        +Rule	AusAQ	1942	only	-	Jan	 1	2:00	1:00	-
        +Rule	AusAQ	1942	only	-	Mar	29	2:00	0	-
        +Rule	AusAQ	1942	only	-	Sep	27	2:00	1:00	-
        +Rule	AusAQ	1943	1944	-	Mar	lastSun	2:00	0	-
        +Rule	AusAQ	1943	only	-	Oct	 3	2:00	1:00	-
        +Rule	ATAQ	1967	only	-	Oct	Sun>=1	2:00s	1:00	-
        +Rule	ATAQ	1968	only	-	Mar	lastSun	2:00s	0	-
        +Rule	ATAQ	1968	1985	-	Oct	lastSun	2:00s	1:00	-
        +Rule	ATAQ	1969	1971	-	Mar	Sun>=8	2:00s	0	-
        +Rule	ATAQ	1972	only	-	Feb	lastSun	2:00s	0	-
        +Rule	ATAQ	1973	1981	-	Mar	Sun>=1	2:00s	0	-
        +Rule	ATAQ	1982	1983	-	Mar	lastSun	2:00s	0	-
        +Rule	ATAQ	1984	1986	-	Mar	Sun>=1	2:00s	0	-
        +Rule	ATAQ	1986	only	-	Oct	Sun>=15	2:00s	1:00	-
        +Rule	ATAQ	1987	1990	-	Mar	Sun>=15	2:00s	0	-
        +Rule	ATAQ	1987	only	-	Oct	Sun>=22	2:00s	1:00	-
        +Rule	ATAQ	1988	1990	-	Oct	lastSun	2:00s	1:00	-
        +Rule	ATAQ	1991	1999	-	Oct	Sun>=1	2:00s	1:00	-
        +Rule	ATAQ	1991	2005	-	Mar	lastSun	2:00s	0	-
        +Rule	ATAQ	2000	only	-	Aug	lastSun	2:00s	1:00	-
        +Rule	ATAQ	2001	max	-	Oct	Sun>=1	2:00s	1:00	-
        +Rule	ATAQ	2006	only	-	Apr	Sun>=1	2:00s	0	-
        +Rule	ATAQ	2007	only	-	Mar	lastSun	2:00s	0	-
        +Rule	ATAQ	2008	max	-	Apr	Sun>=1	2:00s	0	-
         
         # Argentina - year-round bases
         # Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05
        @@ -98,20 +125,52 @@ Rule	ChileAQ	2000	max	-	Mar	Sun>=9	3:00u
         # http://www.timeanddate.com/news/time/antarctica-new-times.html
         # 
         
        +# From Steffen Thorsen (2010-03-10):
        +# We got these changes from the Australian Antarctic Division:
        +# - Macquarie Island will stay on UTC+11 for winter and therefore not
        +# switch back from daylight savings time when other parts of Australia do
        +# on 4 April.
        +#
        +# - Casey station reverted to its normal time of UTC+8 on 5 March 2010.
        +# The change to UTC+11 is being considered as a regular summer thing but
        +# has not been decided yet.
        +#
        +# - Davis station will revert to its normal time of UTC+7 at 10 March 2010
        +# 20:00 UTC.
        +#
        +# - Mawson station stays on UTC+5.
        +#
        +# In addition to the Rule changes for Casey/Davis, it means that Macquarie
        +# will no longer be like Hobart and will have to have its own Zone created.
        +#
        +# Background:
        +# 
        +# http://www.timeanddate.com/news/time/antartica-time-changes-2010.html
        +# 
        +
         # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
         Zone Antarctica/Casey	0	-	zzz	1969
         			8:00	-	WST	2009 Oct 18 2:00
         						# Western (Aus) Standard Time
        -			11:00	-	CAST	# Casey Time
        +			11:00	-	CAST	2010 Mar 5 2:00
        +						# Casey Time
        +			8:00	-	WST
         Zone Antarctica/Davis	0	-	zzz	1957 Jan 13
         			7:00	-	DAVT	1964 Nov # Davis Time
         			0	-	zzz	1969 Feb
         			7:00	-	DAVT	2009 Oct 18 2:00
        -			5:00	-	DAVT
        +			5:00	-	DAVT	2010 Mar 10 20:00u
        +			7:00	-	DAVT
         Zone Antarctica/Mawson	0	-	zzz	1954 Feb 13
         			6:00	-	MAWT	2009 Oct 18 2:00
         						# Mawson Time
         			5:00	-	MAWT
        +Zone Antarctica/Macquarie 0	-	zzz	1911
        +			10:00	-	EST	1916 Oct 1 2:00
        +			10:00	1:00	EST	1917 Feb
        +			10:00	AusAQ	EST	1967
        +			10:00	ATAQ	EST	2010 Apr 4 3:00
        +			11:00	-	MIST	# Macquarie Island Time
         # References:
         # 
         # Casey Weather (1998-02-26)
        
        Modified: vendor/tzdata/dist/asia
        ==============================================================================
        --- vendor/tzdata/dist/asia	Mon Mar 22 21:19:17 2010	(r205472)
        +++ vendor/tzdata/dist/asia	Mon Mar 22 21:25:08 2010	(r205473)
        @@ -1,4 +1,4 @@
        -# @(#)asia	8.55
        +# @(#)asia	8.56
         # This file is in the public domain, so clarified as of
         # 2009-05-17 by Arthur David Olson.
         
        @@ -2438,9 +2438,18 @@ Rule	Syria	2007	only	-	Nov	 Fri>=1	0:00	
         # Thursday of the month or the start of the last Friday of the month or
         # something else. For now, use the start of the last Friday.
         
        +# From Steffen Thorsen (2010-03-17):
        +# The "Syrian News Station" reported on 2010-03-16 that the Council of
        +# Ministers has decided that Syria will start DST on midnight Thursday
        +# 2010-04-01: (midnight between Thursday and Friday):
        +# 
        +# http://sns.sy/sns/?path=news/read/11421 (Arabic)
        +# 
        +
         Rule	Syria	2008	only	-	Apr	Fri>=1	0:00	1:00	S
         Rule	Syria	2008	only	-	Nov	1	0:00	0	-
        -Rule	Syria	2009	max	-	Mar	lastFri	0:00	1:00	S
        +Rule	Syria	2009	only	-	Mar	lastFri	0:00	1:00	S
        +Rule	Syria	2010	max	-	Apr	Fri>=1	0:00	1:00	S
         Rule	Syria	2009	max	-	Oct	lastFri	0:00	0	-
         
         # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
        
        Modified: vendor/tzdata/dist/australasia
        ==============================================================================
        --- vendor/tzdata/dist/australasia	Mon Mar 22 21:19:17 2010	(r205472)
        +++ vendor/tzdata/dist/australasia	Mon Mar 22 21:25:08 2010	(r205473)
        @@ -1,5 +1,5 @@
         # 
        -# @(#)australasia	8.16
        +# @(#)australasia	8.17
         # This file is in the public domain, so clarified as of
         # 2009-05-17 by Arthur David Olson.
         
        @@ -490,7 +490,7 @@ Zone Pacific/Pago_Pago	 12:37:12 -	LMT	1
         Zone Pacific/Apia	 12:33:04 -	LMT	1879 Jul  5
         			-11:26:56 -	LMT	1911
         			-11:30	-	SAMT	1950		# Samoa Time
        -			-11:00	-	WST	2010 Oct 24
        +			-11:00	-	WST	2010 Sep 26
         			-11:00	1:00	WSDT	2011 Apr 3
         			-11:00	-	WST
         
        
        Modified: vendor/tzdata/dist/zone.tab
        ==============================================================================
        --- vendor/tzdata/dist/zone.tab	Mon Mar 22 21:19:17 2010	(r205472)
        +++ vendor/tzdata/dist/zone.tab	Mon Mar 22 21:25:08 2010	(r205473)
        @@ -1,5 +1,5 @@
         # 
        -# @(#)zone.tab	8.33
        +# @(#)zone.tab	8.34
         # This file is in the public domain, so clarified as of
         # 2009-05-17 by Arthur David Olson.
         #
        @@ -44,6 +44,7 @@ AQ	-6617+11031	Antarctica/Casey	Casey St
         AQ	-7824+10654	Antarctica/Vostok	Vostok Station, S Magnetic Pole
         AQ	-6640+14001	Antarctica/DumontDUrville	Dumont-d'Urville Station, Terre Adelie
         AQ	-690022+0393524	Antarctica/Syowa	Syowa Station, E Ongul I
        +AQ	-5430+15857	Antarctica/Macquarie	Macquarie Island Station, Macquarie Island
         AR	-3436-05827	America/Argentina/Buenos_Aires	Buenos Aires (BA, CF)
         AR	-3124-06411	America/Argentina/Cordoba	most locations (CB, CC, CN, ER, FM, MN, SE, SF)
         AR	-2447-06525	America/Argentina/Salta	(SA, LP, NQ, RN)
        
        From owner-svn-src-vendor@FreeBSD.ORG  Mon Mar 22 21:26:12 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 7E9551065670;
        	Mon, 22 Mar 2010 21:26:12 +0000 (UTC)
        	(envelope-from edwin@FreeBSD.org)
        Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
        	by mx1.freebsd.org (Postfix) with ESMTP id 5463A8FC16;
        	Mon, 22 Mar 2010 21:26:12 +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 o2MLQCQO044567;
        	Mon, 22 Mar 2010 21:26:12 GMT (envelope-from edwin@svn.freebsd.org)
        Received: (from edwin@localhost)
        	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2MLQCXq044566;
        	Mon, 22 Mar 2010 21:26:12 GMT (envelope-from edwin@svn.freebsd.org)
        Message-Id: <201003222126.o2MLQCXq044566@svn.freebsd.org>
        From: Edwin Groothuis 
        Date: Mon, 22 Mar 2010 21:26:12 +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: r205474 - vendor/tzdata/tzdata2010f
        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: Mon, 22 Mar 2010 21:26:12 -0000
        
        Author: edwin
        Date: Mon Mar 22 21:26:12 2010
        New Revision: 205474
        URL: http://svn.freebsd.org/changeset/base/205474
        
        Log:
          Tag of tzdata2010f
        
        Added:
          vendor/tzdata/tzdata2010f/
             - copied from r205473, vendor/tzdata/dist/
        
        From owner-svn-src-vendor@FreeBSD.ORG  Mon Mar 22 21:48:40 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 64912106564A;
        	Mon, 22 Mar 2010 21:48:40 +0000 (UTC)
        	(envelope-from edwin@FreeBSD.org)
        Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
        	by mx1.freebsd.org (Postfix) with ESMTP id 537B88FC15;
        	Mon, 22 Mar 2010 21:48:40 +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 o2MLme6o049861;
        	Mon, 22 Mar 2010 21:48:40 GMT (envelope-from edwin@svn.freebsd.org)
        Received: (from edwin@localhost)
        	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2MLmeuX049856;
        	Mon, 22 Mar 2010 21:48:40 GMT (envelope-from edwin@svn.freebsd.org)
        Message-Id: <201003222148.o2MLmeuX049856@svn.freebsd.org>
        From: Edwin Groothuis 
        Date: Mon, 22 Mar 2010 21:48: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: r205480 - in vendor/tzcode/dist: unused zic
        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: Mon, 22 Mar 2010 21:48:40 -0000
        
        Author: edwin
        Date: Mon Mar 22 21:48:40 2010
        New Revision: 205480
        URL: http://svn.freebsd.org/changeset/base/205480
        
        Log:
          Vendor import of tzcode2010f:
          
          - Updated quotes and links.
          - Put warning about case insensitivity of names, but not always in
            abbreviations.
        
        Modified:
          vendor/tzcode/dist/unused/tz-art.htm
          vendor/tzcode/dist/unused/tz-link.htm
          vendor/tzcode/dist/unused/zic.8.txt
          vendor/tzcode/dist/zic/zic.8
        
        Modified: vendor/tzcode/dist/unused/tz-art.htm
        ==============================================================================
        --- vendor/tzcode/dist/unused/tz-art.htm	Mon Mar 22 21:40:00 2010	(r205479)
        +++ vendor/tzcode/dist/unused/tz-art.htm	Mon Mar 22 21:48:40 2010	(r205480)
        @@ -9,7 +9,7 @@ PUBLIC "-//W3C//DTD HTML 4.01//EN"
         
         

        Time and the Arts

        -@(#)tz-art.htm 8.16 +@(#)tz-art.htm 8.17

        This file is in the public domain, so clarified as of @@ -417,6 +417,18 @@ Now that's pretty near 100 years, daylig as noted by Will Fitzerald)

      • +Brady: "...[Bishop Usher] determined that the Lord began the Creation +on the 23rd of October in the Year 4004 B.C. at -- uh, at 9 A.M.!" +
        +Drummond: "That Eastern Standard Time? (Laughter) Or Rocky Mountain +Time? (More laughter) It wasn't daylight-saving time, was it? Because +the Lord didn't make the sun until the fourth day!" +
        +(From the play "Inherit the Wind" by Jerome Lawrence and Robert E. Lee, +filmed in 1960 with Spencer Tracy as Drummond and Fredric March as +Brady, and several other times. Thanks to Mark Brader.) +
      • +
      • "Good news." "What did they do? Extend Daylight Saving Time year round?" (Professional tanner George Hamilton, in dialog from a Modified: vendor/tzcode/dist/unused/tz-link.htm ============================================================================== --- vendor/tzcode/dist/unused/tz-link.htm Mon Mar 22 21:40:00 2010 (r205479) +++ vendor/tzcode/dist/unused/tz-link.htm Mon Mar 22 21:48:40 2010 (r205480) @@ -18,7 +18,7 @@

        Sources for Time Zone and Daylight Saving Time Data

        -@(#)tz-link.htm 8.24 +@(#)tz-link.htm 8.26

        This file is in the public domain, so clarified as of @@ -40,8 +40,8 @@ href="http://en.wikipedia.org/wiki/Coord title="Coordinated Universal Time">UTC offsets, and daylight-saving rules. -This database (often called tz or zoneinfo) +This database (often called zoneinfo or tz) is used by several implementations, including the Modified: vendor/tzcode/dist/unused/zic.8.txt ============================================================================== --- vendor/tzcode/dist/unused/zic.8.txt Mon Mar 22 21:40:00 2010 (r205479) +++ vendor/tzcode/dist/unused/zic.8.txt Mon Mar 22 21:48:40 2010 (r205480) @@ -68,6 +68,10 @@ DESCRIPTION expected to be of one of three types: rule lines, zone lines, and link lines. + Names (such as month names) must be in English and are case + insensitive. Abbreviations, if used, must be unambiguous in + context. + A rule line has the form Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -122,6 +126,7 @@ DESCRIPTION Names of days of the week may be abbreviated or spelled out in full. Note that there must be no spaces within the ON field. + AT Gives the time of day at which the rule takes effect. Recognized forms include: Modified: vendor/tzcode/dist/zic/zic.8 ============================================================================== --- vendor/tzcode/dist/zic/zic.8 Mon Mar 22 21:40:00 2010 (r205479) +++ vendor/tzcode/dist/zic/zic.8 Mon Mar 22 21:48:40 2010 (r205480) @@ -109,6 +109,9 @@ Any line that is blank (after comment st Non-blank lines are expected to be of one of three types: rule lines, zone lines, and link lines. .PP +Names (such as month names) must be in English and are case insensitive. +Abbreviations, if used, must be unambiguous in context. +.PP A rule line has the form .nf .ti +.5i @@ -490,6 +493,6 @@ specifying transition instants using uni /usr/local/etc/zoneinfo standard directory used for created files .SH "SEE ALSO" newctime(3), tzfile(5), zdump(8) -.\" @(#)zic.8 8.5 +.\" @(#)zic.8 8.6 .\" This file is in the public domain, so clarified as of .\" 2009-05-17 by Arthur David Olson. From owner-svn-src-vendor@FreeBSD.ORG Mon Mar 22 21:49:54 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 34EEE106566C; Mon, 22 Mar 2010 21:49:54 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0AEEE8FC1A; Mon, 22 Mar 2010 21:49:54 +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 o2MLnr7O050164; Mon, 22 Mar 2010 21:49:53 GMT (envelope-from edwin@svn.freebsd.org) Received: (from edwin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2MLnrXI050163; Mon, 22 Mar 2010 21:49:53 GMT (envelope-from edwin@svn.freebsd.org) Message-Id: <201003222149.o2MLnrXI050163@svn.freebsd.org> From: Edwin Groothuis Date: Mon, 22 Mar 2010 21:49:53 +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: r205481 - vendor/tzcode/tzcode2010f 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: Mon, 22 Mar 2010 21:49:54 -0000 Author: edwin Date: Mon Mar 22 21:49:53 2010 New Revision: 205481 URL: http://svn.freebsd.org/changeset/base/205481 Log: Tag of tzdata2010f. Added: vendor/tzcode/tzcode2010f/ - copied from r205480, vendor/tzcode/dist/ From owner-svn-src-vendor@FreeBSD.ORG Mon Mar 22 21:50:53 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 820AA1065677; Mon, 22 Mar 2010 21:50:53 +0000 (UTC) (envelope-from edwin@mavetju.org) Received: from k7.mavetju.org (unknown [IPv6:2001:44b8:7bf1:a51:20f:eaff:fe2c:d518]) by mx1.freebsd.org (Postfix) with ESMTP id 324228FC2A; Mon, 22 Mar 2010 21:50:53 +0000 (UTC) Received: by k7.mavetju.org (Postfix, from userid 1001) id 40774451CF; Tue, 23 Mar 2010 08:49:43 +1100 (EST) Date: Tue, 23 Mar 2010 08:49:43 +1100 From: Edwin Groothuis To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Message-ID: <20100322214943.GA20075@mavetju.org> References: <201003222149.o2MLnrXI050163@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201003222149.o2MLnrXI050163@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: Subject: Re: svn commit: r205481 - vendor/tzcode/tzcode2010f 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: Mon, 22 Mar 2010 21:50:53 -0000 On Mon, Mar 22, 2010 at 09:49:53PM +0000, Edwin Groothuis wrote: > Log: > Tag of tzdata2010f. tzcode2010f. -- Edwin Groothuis Website: http://www.mavetju.org/ edwin@mavetju.org Weblog: http://www.mavetju.org/weblog/ From owner-svn-src-vendor@FreeBSD.ORG Mon Mar 22 22:02:24 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 CA2411065672; Mon, 22 Mar 2010 22:02:24 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9F8208FC14; Mon, 22 Mar 2010 22:02:24 +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 o2MM2Ota053057; Mon, 22 Mar 2010 22:02:24 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2MM2O6o053056; Mon, 22 Mar 2010 22:02:24 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201003222202.o2MM2O6o053056@svn.freebsd.org> From: Xin LI Date: Mon, 22 Mar 2010 22:02:24 +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: r205482 - vendor/libz/dist/contrib/inflate86 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: Mon, 22 Mar 2010 22:02:24 -0000 Author: delphij Date: Mon Mar 22 22:02:24 2010 New Revision: 205482 URL: http://svn.freebsd.org/changeset/base/205482 Log: Remove unused part of contributed code. Deleted: vendor/libz/dist/contrib/inflate86/ From owner-svn-src-vendor@FreeBSD.ORG Mon Mar 22 22:03:55 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 414E71065675; Mon, 22 Mar 2010 22:03:55 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A9C928FC13; Mon, 22 Mar 2010 22:03:54 +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 o2MM3sQ1053454; Mon, 22 Mar 2010 22:03:54 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2MM3srX053453; Mon, 22 Mar 2010 22:03:54 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201003222203.o2MM3srX053453@svn.freebsd.org> From: Xin LI Date: Mon, 22 Mar 2010 22:03:54 +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: r205483 - vendor/libz/1.2.4/contrib/inflate86 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: Mon, 22 Mar 2010 22:03:55 -0000 Author: delphij Date: Mon Mar 22 22:03:54 2010 New Revision: 205483 URL: http://svn.freebsd.org/changeset/base/205483 Log: Retag 1.2.4 tree after removal of the unused contributed code. Deleted: vendor/libz/1.2.4/contrib/inflate86/ Modified: Directory Properties: vendor/libz/1.2.4/ (props changed) From owner-svn-src-vendor@FreeBSD.ORG Tue Mar 23 22:56:19 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 BD42E106566B; Tue, 23 Mar 2010 22:56:19 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A0E2A8FC0C; Tue, 23 Mar 2010 22:56:19 +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 o2NMuJKx013509; Tue, 23 Mar 2010 22:56:19 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2NMuJq3013506; Tue, 23 Mar 2010 22:56:19 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201003232256.o2NMuJq3013506@svn.freebsd.org> From: Xin LI Date: Tue, 23 Mar 2010 22:56:19 +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: r205559 - vendor/netcat/dist 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: Tue, 23 Mar 2010 22:56:19 -0000 Author: delphij Date: Tue Mar 23 22:56:19 2010 New Revision: 205559 URL: http://svn.freebsd.org/changeset/base/205559 Log: Import nc from OpenBSD's OPENBSD_4_7 as of today. Modified: vendor/netcat/dist/nc.1 vendor/netcat/dist/netcat.c Modified: vendor/netcat/dist/nc.1 ============================================================================== --- vendor/netcat/dist/nc.1 Tue Mar 23 22:50:22 2010 (r205558) +++ vendor/netcat/dist/nc.1 Tue Mar 23 22:56:19 2010 (r205559) @@ -1,4 +1,4 @@ -.\" $OpenBSD: nc.1,v 1.50 2009/06/05 06:47:12 jmc Exp $ +.\" $OpenBSD: nc.1,v 1.53 2010/02/23 23:00:52 schwarze Exp $ .\" .\" Copyright (c) 1996 David Sacerdote .\" All rights reserved. @@ -25,7 +25,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: June 5 2009 $ +.Dd $Mdocdate: February 23 2010 $ .Dt NC 1 .Os .Sh NAME @@ -47,8 +47,8 @@ .Op Fl X Ar proxy_protocol .Oo Xo .Fl x Ar proxy_address Ns Oo : Ns -.Ar port Oc Oc -.Xc +.Ar port Oc +.Xc Oc .Op Ar hostname .Op Ar port .Ek @@ -174,7 +174,9 @@ This makes it possible to use .Nm to script telnet sessions. .It Fl U -Specifies to use Unix Domain Sockets. +Specifies to use +.Ux Ns -domain +sockets. .It Fl u Use UDP instead of the default option of TCP. .It Fl V Ar rdomain @@ -386,7 +388,9 @@ IP for the local end of the connection: .Pp .Dl $ nc -s 10.1.2.3 host.example.com 42 .Pp -Create and listen on a Unix Domain Socket: +Create and listen on a +.Ux Ns -domain +socket: .Pp .Dl $ nc -lU /var/tmp/dsocket .Pp Modified: vendor/netcat/dist/netcat.c ============================================================================== --- vendor/netcat/dist/netcat.c Tue Mar 23 22:50:22 2010 (r205558) +++ vendor/netcat/dist/netcat.c Tue Mar 23 22:56:19 2010 (r205559) @@ -1,4 +1,4 @@ -/* $OpenBSD: netcat.c,v 1.93 2009/06/05 00:18:10 claudio Exp $ */ +/* $OpenBSD: netcat.c,v 1.95 2010/02/27 00:58:56 nicm Exp $ */ /* * Copyright (c) 2001 Eric Jackson * @@ -403,8 +403,10 @@ main(int argc, char *argv[]) uflag ? "udp" : "tcp"); } - printf("Connection to %s %s port [%s/%s] succeeded!\n", - host, portlist[i], uflag ? "udp" : "tcp", + fprintf(stderr, + "Connection to %s %s port [%s/%s] " + "succeeded!\n", host, portlist[i], + uflag ? "udp" : "tcp", sv ? sv->s_name : "*"); } if (!zflag) @@ -681,27 +683,27 @@ atelnet(int nfd, unsigned char *buf, uns unsigned char *p, *end; unsigned char obuf[4]; - end = buf + size; - obuf[0] = '\0'; + if (size < 3) + return; + end = buf + size - 2; for (p = buf; p < end; p++) { if (*p != IAC) - break; + continue; obuf[0] = IAC; p++; if ((*p == WILL) || (*p == WONT)) obuf[1] = DONT; - if ((*p == DO) || (*p == DONT)) + else if ((*p == DO) || (*p == DONT)) obuf[1] = WONT; - if (obuf) { - p++; - obuf[2] = *p; - obuf[3] = '\0'; - if (atomicio(vwrite, nfd, obuf, 3) != 3) - warn("Write Error!"); - obuf[0] = '\0'; - } + else + continue; + + p++; + obuf[2] = *p; + if (atomicio(vwrite, nfd, obuf, 3) != 3) + warn("Write Error!"); } } From owner-svn-src-vendor@FreeBSD.ORG Tue Mar 23 22:56:54 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 44AF0106568F; Tue, 23 Mar 2010 22:56:54 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 19CE38FC08; Tue, 23 Mar 2010 22:56:54 +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 o2NMur3P013647; Tue, 23 Mar 2010 22:56:53 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2NMurKa013646; Tue, 23 Mar 2010 22:56:53 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201003232256.o2NMurKa013646@svn.freebsd.org> From: Xin LI Date: Tue, 23 Mar 2010 22:56:53 +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: r205560 - vendor/netcat/4.7 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: Tue, 23 Mar 2010 22:56:54 -0000 Author: delphij Date: Tue Mar 23 22:56:53 2010 New Revision: 205560 URL: http://svn.freebsd.org/changeset/base/205560 Log: Tag for nc from OpenBSD 4.7. Added: vendor/netcat/4.7/ - copied from r205559, vendor/netcat/dist/