svn commit: r270393 - in stable/8: contrib/binutils/binutils contrib/gcc contrib/gcc/config contrib/gcc/config/arm contrib/gcc/config/i386 contrib/gcc/config/rs6000 contrib/gcc/cp contrib/gcc/doc c...

Dimitry Andric dim at FreeBSD.org
Sat Aug 23 10:58:18 UTC 2014


Author: dim
Date: Sat Aug 23 10:58:16 2014
New Revision: 270393
URL: http://svnweb.freebsd.org/changeset/base/270393

Log:
  Bring in a collection of gcc and libstdc++ fixes and updates from head,
  most of which are already in stable/10 and stable/9 for some time.
  
  Requested by:	danfe
  Tested by:	danfe and make universe
  
  MFC r228328:
    Make it possible to use the debug versions of std::map and std::multimap
    with clang, by removing two unneeded using declarations.  Otherwise, you
    would get errors similar to:
  
    /usr/include/c++/4.2/debug/map.h:77:20: error: dependent using declaration resolved to type without 'typename'
  	using _Base::value_compare;
  		     ^
  
    N.B.: Take care when you actually use the debug versions of any
    libstdc++ header.  They are more likely to contain problems, because
    they are exercised far less often, and since the standard library
    complexity guarantees don't always apply anymore, compile times can
    drastically increase.
  
  MFC r228474 (by ed):
    Add support for __COUNTER__.
  
    __COUNTER__ allows one to obtain incrementing (read: unique) numbers
    from the C preprocesor. This is useful when implementing things like a
    robust implementation of CTASSERT(), which currently fails when using
    it more than once on a single line of code. Probably not likely to cause
    any breakage, but still.
  
    __COUNTER__ was also added to GCC 4.3, but since that implementation is
    GPLv3 licensed, I took the liberty of implementing it without looking at
    any upstream sources. Therefore, this version is licensed under the same
    license as the rest of the code; GPLv2.
  
  MFC r231336 (by kientzle):
    Implement -print-file-name=include (which is undocumented
    but used by some Linux boot loaders).  This option prints
    out the directory holding the include files needed by
    a freestanding program.  The default implementation of
    this doesn't work on FreeBSD because of the different
    include file layout.  But it's easy to implement:
    just return /usr/include (or the cross-compiling equivalent).
  
    Reviewed by:	kan
  
  MFC r233193:
    Add explicit braces to avoid dangling else in stl_tree.h.  This silences
    the following warning produced by clang trunk:
  
      In file included from /usr/src/sbin/devd/devd.cc:91:
      In file included from /usr/obj/usr/src/tmp/usr/include/c++/4.2/map:64:
      /usr/obj/usr/src/tmp/usr/include/c++/4.2/bits/stl_tree.h:987:2: error: add explicit braces to avoid dangling else [-Werror,-Wdangling-else]
  	    else
  	    ^
  
  MFC r241957:
    Fix several clang warnings in libstdc++, which were exposed by the
    recent atf import.  These changes are purely cosmetic, no functional
    change.
  
  MFC r244776 (by pfg):
    gcc: avoid generating negative values to DW_AT_byte_size.
  
    There is a bug in gcc (GCC/35998) where dwarf reports
    sizes of unsigned -1 (0xffffffff).
  
    On NetBSD this generated a faulty CTF entry which then
    caused a segfault in ctfmerge. The issue was worked
    around in NetBSD's Dtrace but since the issue originated
    in gcc, it seems reasonable to fix it here.
  
    Upstream gcc has been slow to react to this issue and
    the author that submitted the patch is not interested
    in licensing the change to us, so I did an independent
    workaround for the issue.
  
  MFC r251212 (by pfg):
    GCC: bring back experimental support for amdfam10/barcelona CPUs.
  
    Initial support for the AMD amdfam10 chipsets has been available in the
    gcc43 branch under GPLv2. AMD and some linux distributions (OpenSUSE) did
    a backport of the amdfam10 support and made it available.
  
    This is a revised subset of the support initially brought in in r236962
    and later reverted. The collateral efects seem to have disappeared but
    it is still recommended to set the CPUTYPE with caution.
  
    Reviewed by:	jkim (ages ago)
  
  MFC r258017 (by pfg):
    cxxfilt: small changes from Apple's developer tools
  
    From Apple's Developer Tools 4.0 [1]:
  
    demangle.patch
    2007-05-05  Geoffrey Keating
  	  (d_name): Detect local-source-name.
  	  (d_prefix): Likewise.
  	  (d_unqualified_name): Implement local-source-name.
  
    libiberty-printf.patch
  
    [1] http://opensource.apple.com/source/cxxfilt/cxxfilt-9/patches/
  
  MFC r258429 (by pfg):
    libstdc++: merge non-abi changes from Apple's developer tools
  
    Take some changes from Apple's Developer Tools 4.0 [1]:
  
    block.patch
    emergency-buffer-reduction.patch
    test_cleanup.patch
  
    vector_copy_no_alloc.patch
  	  problem/6473222 copy-constructing a std::vector	from an
  	  empty std::vector calls malloc
  
    2008-10-27  Howard Hinnant
    stl_tree_system_header.patch
  	  Added #pragma GCC system_header to stl_tree.h.
    copy_doc.patch
  	  Corrected documentation concerning copy in stl_algobase.h.
    string_compare.patch
  	  Fixed basic_string.h, basic_string.tcc, incorrect 64bit to
  	  32bit narrowing.
  
    Reference:
  
    [1] http://opensource.apple.com/source/libstdcxx/libstdcxx-39/patches-4.2.1/
  
    Obtained from:	Apple
  
  MFC r258501 (by pfg):
    gcc: Bring updates from Google's enhanced gcc-4.2.1.
  
    Google released and enhanced version of gcc-4.2.1 plus their local
    patches for Android[1].
  
    The patches are owned by Google and the license hasn't been changed
    from  the original GPLv2. We are only bringing a subset of the
    available patches that may be helpful in FreeBSD. Changes specific
    to android are not included.
  
    From the README.google file[1].
  
    Patches applied to google_vendor_src_branch/gcc/gcc-4.2.1:
  
    gcc/Makefile.in
    gcc/c-common.c
    gcc/c-common.h
    gcc/c-opts.c
    gcc/c-typeck.c
    gcc/cp/typeck.c
    gcc/doc/invoke.texi
    gcc/flags.h
    gcc/opts.c
    gcc/tree-flow.h
    gcc/tree-ssa-alias-warnings.c
    gcc/tree-ssa-alias.c
  
     Backport of -Wstrict-aliasing from mainline.
      Silvius Rus <rus at google.com>
  
    gcc/coverage.c:
      Patch coverage_checksum_string for PR 25351.
      Seongbae Park <spark at google.com>
      Not yet submitted to FSF.
  
    gcc/c-opts.c
    gcc/c-ppoutput.c
    gcc/c.opt
    gcc/doc/cppopts.texi
    libcpp/Makefile.in
    libcpp/directives-only.c
    libcpp/directives.c
    libcpp/files.c
    libcpp/include/cpplib.h
    libcpp/init.c
    libcpp/internal.h
    libcpp/macro.c
      Support for -fdirectives-only.
      Ollie Wild <aaw at google.com>.
      Submitted to FSF but not yet approved.
  
    libstdc++-v3/include/ext/hashtable.h
      http://b/742065
      http://b/629994
      Reduce min size of hashtable for hash_map, hash_set from 53 to 5
  
    libstdc++-v3/include/ext/hashtable.h
      http://b/629994
      Do not iterate over buckets if hashtable is empty.
  
    gcc/common.opt
    gcc/doc/invoke.texi
    gcc/flags.h
    gcc/gimplify.c
    gcc/opts.c
      Add Saito's patch for -finstrument-functions-exclude-* options.
  
    gcc/common.opt
    gcc/doc/invoke.texi
    gcc/final.c
    gcc/flags.h
    gcc/opts.c
    gcc/testsuite/gcc.dg/Wframe-larger-than.c
      Add a new flag -Wframe-larger-than- which enables a new warning
      when a frame size of a function is larger than specified.
      This patch hasn't been integrated into gcc mainline yet.
  
    gcc/tree-vrp.c
      Add a hack to avoid using ivopts information for pointers starting
      at constant values.
  
    Reference:
  
    [1]
    https://android.googlesource.com/toolchain/gcc/+/master/gcc-4.2.1/
  
    Obtained from:	Google Inc.
  
  MFC r258507 (by pfg):
    gcc: Missing makefile changes for r258501.
  
    pointyhat:	me
  
  MFC r258530 (by pfg):
    libcpp: Keep a record of changes from upstream GCC (pre-43).
  
    This makes it easier to track the changes in the rare event of the code
    being distributed without access to version control.
  
  MFC r258651 (by pfg):
    gcc: Altivec register adjustments from Apple.
  
    Obtained from:	gcc pre-4.3 (rev. 124763; GPLv2)
  
  MFC r258658 (by mdf):
    Fix a segfault / internal compiler error.
  
    Among other causes, when gcc throws a warning before parsing any tokens,
    the cur_token pointer is at the beginning of malloc'd memory.
    Dereferencing cur_token[-1] can cause a segfault.
  
    Code taken from OpenBSD
    http://www.openbsd.org/cgi-bin/cvsweb/src/gnu/gcc/libcpp/errors.c
    which was a more complete fix than the one I originally coded.
  
  MFC r258731 (by pfg):
    gcc: Make use of TREE_OVERFLOW_P.
  
    While it was brought in r258179 only to fix a build issue,
    bringing the rest of the change has the advantage of fixing
    GCC/19978.
  
    Obtained from:	gcc 4.3 (rev. 120505; GPLv2)
  
  MFC r258748 (by pfg):
    gcc: upstream alignment cleanups.
  
    This solves GCC/32617 and contributes to reduce differences with
    Apple's gcc42.
  
    Complete some references in the ChangeLog while here.
  
    Obtained from:	gcc 4.3 (rev. 126529, 126588; GPLv2)
  
  MFC r258817 (by pfg):
    libiberty: upstream updates.
  
    There is a new ChangeLog.gcc43 file but most notable:
  
    * floatformat.c (get_field): Fix segfault with little-endian word
      order on 64-bit hosts.
      (put_field): Likewise.
      (min): Move definition.
  
    gcc/cp/ChangeLog
    2007-05-04  Geoffrey Keating  <geoffk at apple.com>
  
      PR 31775
      * mangle.c (write_mangled_name): Mangle static variable names.
      (write_unqualified_name): Use local-source-name for
      namespace-scope static variables.
    (Completes FreeBSD's r258017 )
  
    Obtained from:	gcc 4.3 (rev. 118552, 120097, 20698, 120702,
  			   121364, 122972, 126588; GPLv2)
  
  MFC r258826 (by pfg):
    libcpp: Merge fixes from upstream
  
    GCC preprocessor/29966:
    * macro.c (lex_expansion_token): Save and restore cpp_reader's
    cur_token.
    (_cpp_create_definition): Don't restore cur_token here.
    * lex.c (_cpp_lex_token): Added assertion.
  
    GCC preprocessor/28709:
    * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
  
    GCC c/31924
    * expr.c (interpret_float_suffix): Check for invalid suffix.
  
    GCC preprocessor/14331
    * lex.c (_cpp_get_fresh_line):  Don't warn if no newline at EOF.
  
    Fixup whitespacing
  
    Obtained from:	gcc per-4.3 (rev. 121340, 124356, 124358, 124730,
  				    125212, 125255 ; GPLv2)
  
  MFC r258943 (by pfg):
    gcc: On rs6000 update sp_offset depending only on size.
  
    This fixes a nasty bug introduced in r258651.
  
    Reported and tested by:	Justin Hibbits
    Obtained from:		gcc pre-4.3 (rev. 125116; GPLv2)
  
  MFC r259005 (by pfg):
    gcc: Add -flax-vector-conversions
  
    Obtained from:	gcc 4.3 (rev. 120572, 120688; GPLv2)
  
  MFC r259022 (by pfg):
    gcc: Include types in error message for build_binary_op.
  
    Mostly cosmetic change, again to reduce differences with Apple's gcc.
  
    Obtained from:	gcc 4.3 (rev. 125239; GPLv2)
  
  MFC r259092 (by pfg):
    gcc: new fvisibility-ms-compat option
  
    Obtained from:	gcc 4.3 (rev. 126088; GPLv2)
  
  MFC r259111:
    Use correct casts in gcc's emmintrin.h for the first arguments of the
    following builtin functions:
  
    * __builtin_ia32_pslldi128() takes __v4si instead of __v8hi
    * __builtin_ia32_psllqi128() takes __v2di instead of __v8hi
    * __builtin_ia32_psradi128() takes __v4si instead of __v8hi
  
    This should fix the following errors when building the LINT kernel with
    gcc:
  
    sys/crypto/aesni/aesni_wrap.c:191: error: incompatible type for argument 1 of
    '__builtin_ia32_psradi128'
    sys/crypto/aesni/aesni_wrap.c:195: error: incompatible type for argument 1 of
    '__builtin_ia32_pslldi128'
  
  MFC r259525 (by pfg):
    gcc: fix ICE in rs600 when using -fno-trapping-math.
  
    Solves GCC-PR target/30485
  
    Obtained from:	gcc 4.3 (rev. 120902; GPLv2)
  
  MFC r259529 (by pfg):
    gcc: small merges from upstream
  
    Solves GCC issues:
    PR middle-end/32602
    PR middle-end/32603
  
    Updates the to documentation and processing
    improvement.
  
    Obtained from:	gcc 4.3 (rev. 119427, 126278, 126422; GPLv2)
  
  MFC r259555 (by pfg):
    gcc: add Apple compatible -Wnewline-eof
  
    GCC 4.2 and previous have always warned about
    "No newline at end of file".
  
    Upstream GCC removed the warning completely but
    Apple made it an optional warning. Adopt it for
    compatibility with older GCC and clang.
  
    While here, add comment to complement r258712.
  
    Obtained from:	Apple Inc. (Apple GCC 4.2 - 5531)
  
  MFC r259558 (by pfg):
    gcc: add Apple compatible -Wnewline-eof
  
    Fix document: "Apple compatible" suits better the origin.
  
  MFC r259649 (by pfg):
    gcc: more diff reductions against Apple GCC.
  
    Mostly cosmetical changes to aid further merges.
  
    Obtained from:	gcc 4.3 (rev. 120611, 124839; GPLv2)
  
  MFC r259655 (by pfg):
    gcc: merge upstream fix and new feature.
  
    Fix for PR c++/29928
  
    Add support for Rvalue references as described here:
    http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html
  
    Obtained from:	gcc 4.3 (rev. 124724, 125211; GPLv2)
  
  MFC r259660 (by pfg):
    gcc: revert Rvalue references.
  
    They are very useful but at this time I prefer not to figure out
    some  minor conflicts with the bigger Apple's blocks support
    patch that is being worked on for current.
  
  MFC r259841 (by pfg):
    gcc:  Add ability to generate DWARF pubtypes section if
    DEBUG_PUBTYPES_SECTION is defined.
  
    Obtained from:	gcc 4.3 (rev. 118826; GPLv2)
  
  MFC r259873 (by pfg):
    gcc: small enhancements for the arm support.
  
    Very small updates: fixes GCC-PR target/31152
  
    Tested by building the cross-compiler.
  
    Obtained from:	gcc 4.3 (rev. r118461, 125973: GPLv2)
  
  MFC r259944 (by pfg):
    gcc: merge small upstream change.
  
    Backport from mainline:
    2007-04-24  Hui-May Chang <hm.chang at apple.com>
  
    * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
    instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
  
    Obtained from:	gcc 4.3 (rev. r124115: GPLv2)
  
  MFC r260014 (by pfg):
    gcc: Add support for label attributes and "unavailable" attribute.
  
    Apple GCC has extensions to support for both label attributes and
    an "unavailable" attribute. These are critical for objc but are
    also useful in regular C/C++.
  
    Apparently at least the label attributes might have found their way to
    upstream GCC but the code doesn't seem available on the GPLv2 tree so
    we are taking the code directly from Apple. To make this clearer we
    are preserving the annoying "APPLE LOCAL" tags and the ChangeLogs
    when they are available.
  
    Obtained from:	Apple GCC 4.2 - 5531
  
  MFC r260099 (by pfg):
    gcc: Fix issue with "unavailable" attribute.
  
    While here, point where we dropped the support for objc from r260014.
  
  MFC r260310 (by pfg):
    libcpp: misc fixes from Apple's GCC.
  
    Fixes some bugs detected by Apple:
    #error with unmatched quotes
    pragma mark
  
    Obtained from:	Apple GCC 4.2 - 5553
  
  MFC r263775:
    Avoid "cc1: warning: is shorter than expected" when using GNU cpp in
    combination with dtrace scripts, which have "#!/usr/sbin/dtrace -Cs"
    shebang lines.  This is because dtrace positions the file pointer after
    the shebang line, before passing the file to GNU cpp.
  
    To fix the warning, adjust the size downwards by the current position,
    after a bit of sanity checking.
  
    Suggested by:	avg
  
  MFC r269948:
    Supplement r259111 by also using correct casts in gcc's emmintrin.h for
    the first argument of the following builtin function:
  
    * __builtin_ia32_psrlqi128() takes __v2di instead of __v4si
  
    This should fix the following errors when building the graphics/webp
    port with base gcc:
  
    lossless_sse2.c:403: error: incompatible type for argument 1 of '__builtin_ia32_psrlqi128'
    lossless_sse2.c:404: error: incompatible type for argument 1 of '__builtin_ia32_psrlqi128'
  
    Reported by:	Jos Chrispijn <ports at webrz.net>

Added:
  stable/8/contrib/gcc/ChangeLog.apple
     - copied unchanged from r260014, head/contrib/gcc/ChangeLog.apple
  stable/8/contrib/gcc/config/i386/ammintrin.h
     - copied unchanged from r251212, head/contrib/gcc/config/i386/ammintrin.h
  stable/8/contrib/gcc/cp/ChangeLog.apple
     - copied unchanged from r260014, head/contrib/gcc/cp/ChangeLog.apple
  stable/8/contrib/gcc/tree-ssa-alias-warnings.c
     - copied unchanged from r258501, head/contrib/gcc/tree-ssa-alias-warnings.c
  stable/8/contrib/gcclibs/libcpp/ChangeLog.apple
     - copied, changed from r259555, head/contrib/gcclibs/libcpp/ChangeLog.apple
  stable/8/contrib/gcclibs/libcpp/ChangeLog.gcc43
     - copied, changed from r258530, head/contrib/gcclibs/libcpp/ChangeLog.gcc43
  stable/8/contrib/gcclibs/libcpp/directives-only.c
     - copied unchanged from r258501, head/contrib/gcclibs/libcpp/directives-only.c
  stable/8/contrib/gcclibs/libiberty/ChangeLog.gcc43
     - copied unchanged from r258817, head/contrib/gcclibs/libiberty/ChangeLog.gcc43
Modified:
  stable/8/contrib/binutils/binutils/cxxfilt.c
  stable/8/contrib/gcc/ChangeLog.gcc43
  stable/8/contrib/gcc/builtins.c
  stable/8/contrib/gcc/c-common.c
  stable/8/contrib/gcc/c-common.h
  stable/8/contrib/gcc/c-decl.c
  stable/8/contrib/gcc/c-opts.c
  stable/8/contrib/gcc/c-parser.c
  stable/8/contrib/gcc/c-ppoutput.c
  stable/8/contrib/gcc/c-tree.h
  stable/8/contrib/gcc/c-typeck.c
  stable/8/contrib/gcc/c.opt
  stable/8/contrib/gcc/calls.c
  stable/8/contrib/gcc/common.opt
  stable/8/contrib/gcc/config.gcc
  stable/8/contrib/gcc/config/arm/arm.c
  stable/8/contrib/gcc/config/arm/arm.md
  stable/8/contrib/gcc/config/darwin.c
  stable/8/contrib/gcc/config/darwin.h
  stable/8/contrib/gcc/config/i386/athlon.md
  stable/8/contrib/gcc/config/i386/driver-i386.c
  stable/8/contrib/gcc/config/i386/emmintrin.h
  stable/8/contrib/gcc/config/i386/i386.c
  stable/8/contrib/gcc/config/i386/i386.h
  stable/8/contrib/gcc/config/i386/i386.md
  stable/8/contrib/gcc/config/i386/i386.opt
  stable/8/contrib/gcc/config/i386/pmmintrin.h
  stable/8/contrib/gcc/config/i386/sse.md
  stable/8/contrib/gcc/config/i386/tmmintrin.h
  stable/8/contrib/gcc/config/rs6000/altivec.h
  stable/8/contrib/gcc/config/rs6000/rs6000-c.c
  stable/8/contrib/gcc/config/rs6000/rs6000.c
  stable/8/contrib/gcc/coverage.c
  stable/8/contrib/gcc/cp/Make-lang.in
  stable/8/contrib/gcc/cp/call.c
  stable/8/contrib/gcc/cp/cp-gimplify.c
  stable/8/contrib/gcc/cp/cp-tree.def
  stable/8/contrib/gcc/cp/cp-tree.h
  stable/8/contrib/gcc/cp/decl.c
  stable/8/contrib/gcc/cp/decl2.c
  stable/8/contrib/gcc/cp/dump.c
  stable/8/contrib/gcc/cp/init.c
  stable/8/contrib/gcc/cp/mangle.c
  stable/8/contrib/gcc/cp/method.c
  stable/8/contrib/gcc/cp/parser.c
  stable/8/contrib/gcc/cp/pt.c
  stable/8/contrib/gcc/cp/rtti.c
  stable/8/contrib/gcc/cp/semantics.c
  stable/8/contrib/gcc/cp/typeck.c
  stable/8/contrib/gcc/doc/cppopts.texi
  stable/8/contrib/gcc/doc/extend.texi
  stable/8/contrib/gcc/doc/invoke.texi
  stable/8/contrib/gcc/doc/tm.texi
  stable/8/contrib/gcc/dwarf2out.c
  stable/8/contrib/gcc/emit-rtl.c
  stable/8/contrib/gcc/final.c
  stable/8/contrib/gcc/flags.h
  stable/8/contrib/gcc/gcc.c
  stable/8/contrib/gcc/gimplify.c
  stable/8/contrib/gcc/opts.c
  stable/8/contrib/gcc/print-rtl.c
  stable/8/contrib/gcc/print-tree.c
  stable/8/contrib/gcc/reload1.c
  stable/8/contrib/gcc/rtl.def
  stable/8/contrib/gcc/rtl.h
  stable/8/contrib/gcc/sched-vis.c
  stable/8/contrib/gcc/stmt.c
  stable/8/contrib/gcc/target-def.h
  stable/8/contrib/gcc/target.h
  stable/8/contrib/gcc/toplev.c
  stable/8/contrib/gcc/toplev.h
  stable/8/contrib/gcc/tree-cfg.c
  stable/8/contrib/gcc/tree-dump.c
  stable/8/contrib/gcc/tree-flow.h
  stable/8/contrib/gcc/tree-ssa-alias.c
  stable/8/contrib/gcc/tree-vrp.c
  stable/8/contrib/gcc/tree.c
  stable/8/contrib/gcc/tree.h
  stable/8/contrib/gcc/varasm.c
  stable/8/contrib/gcclibs/libcpp/Makefile.in
  stable/8/contrib/gcclibs/libcpp/charset.c
  stable/8/contrib/gcclibs/libcpp/directives.c
  stable/8/contrib/gcclibs/libcpp/errors.c
  stable/8/contrib/gcclibs/libcpp/expr.c
  stable/8/contrib/gcclibs/libcpp/files.c
  stable/8/contrib/gcclibs/libcpp/include/cpplib.h
  stable/8/contrib/gcclibs/libcpp/init.c
  stable/8/contrib/gcclibs/libcpp/internal.h
  stable/8/contrib/gcclibs/libcpp/lex.c
  stable/8/contrib/gcclibs/libcpp/macro.c
  stable/8/contrib/gcclibs/libcpp/pch.c
  stable/8/contrib/gcclibs/libiberty/choose-temp.c
  stable/8/contrib/gcclibs/libiberty/cp-demangle.c
  stable/8/contrib/gcclibs/libiberty/cp-demangle.h
  stable/8/contrib/gcclibs/libiberty/floatformat.c
  stable/8/contrib/gcclibs/libiberty/functions.texi
  stable/8/contrib/gcclibs/libiberty/pex-unix.c
  stable/8/contrib/gcclibs/libiberty/strsignal.c
  stable/8/contrib/gcclibs/libiberty/testsuite/demangle-expected
  stable/8/contrib/gcclibs/libiberty/testsuite/test-demangle.c
  stable/8/contrib/libstdc++/config/os/bsd/freebsd/ctype_base.h
  stable/8/contrib/libstdc++/include/bits/basic_string.h
  stable/8/contrib/libstdc++/include/bits/basic_string.tcc
  stable/8/contrib/libstdc++/include/bits/fstream.tcc
  stable/8/contrib/libstdc++/include/bits/locale_facets.h
  stable/8/contrib/libstdc++/include/bits/locale_facets.tcc
  stable/8/contrib/libstdc++/include/bits/stl_algobase.h
  stable/8/contrib/libstdc++/include/bits/stl_tree.h
  stable/8/contrib/libstdc++/include/bits/stl_vector.h
  stable/8/contrib/libstdc++/include/bits/streambuf_iterator.h
  stable/8/contrib/libstdc++/include/debug/map.h
  stable/8/contrib/libstdc++/include/debug/multimap.h
  stable/8/contrib/libstdc++/include/ext/hashtable.h
  stable/8/contrib/libstdc++/include/ext/mt_allocator.h
  stable/8/contrib/libstdc++/include/ext/throw_allocator.h
  stable/8/contrib/libstdc++/include/std/std_sstream.h
  stable/8/contrib/libstdc++/libsupc++/eh_alloc.cc
  stable/8/contrib/libstdc++/src/mt_allocator.cc
  stable/8/gnu/usr.bin/cc/cc_int/Makefile
  stable/8/gnu/usr.bin/cc/libcpp/Makefile
Directory Properties:
  stable/8/contrib/   (props changed)
  stable/8/contrib/binutils/   (props changed)
  stable/8/contrib/gcc/   (props changed)
  stable/8/contrib/gcclibs/   (props changed)
  stable/8/contrib/libstdc++/   (props changed)
  stable/8/gnu/usr.bin/   (props changed)

Modified: stable/8/contrib/binutils/binutils/cxxfilt.c
==============================================================================
--- stable/8/contrib/binutils/binutils/cxxfilt.c	Sat Aug 23 10:51:37 2014	(r270392)
+++ stable/8/contrib/binutils/binutils/cxxfilt.c	Sat Aug 23 10:58:16 2014	(r270393)
@@ -44,12 +44,12 @@ demangle_it (char *mangled_name)
   /* For command line args, also try to demangle type encodings.  */
   result = cplus_demangle (mangled_name, flags | DMGL_TYPES);
   if (result == NULL)
-    {
-      printf ("%s\n", mangled_name);
-    }
+    printf ("%s",mangled_name);
   else
     {
-      printf ("%s\n", result);
+      if (mangled_name[0] == '.')
+	putchar ('.');
+      printf ("%s",result);
       free (result);
     }
 }

Copied: stable/8/contrib/gcc/ChangeLog.apple (from r260014, head/contrib/gcc/ChangeLog.apple)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/8/contrib/gcc/ChangeLog.apple	Sat Aug 23 10:58:16 2014	(r270393, copy of r260014, head/contrib/gcc/ChangeLog.apple)
@@ -0,0 +1,51 @@
+006-02-15   Fariborz Jahanian <fjahanian at apple.com>
+
+	Radar 4445586
+	* c-common.def (DO_STMT): Takes an extra argument.
+
+/* APPLE LOCAL merge marger */
+/* Stuff under is in fsf mainline, but not in the 4.2 branch */
+
+2007-08-02  Geoffrey Keating  <geoffk at apple.com>
+
+	Radar 3274130, 5295549
+	* c-parser.c (c_parser_while_statement): Handle attributes.
+	(c_parser_do_statement): Handle attributes.
+	(c_parser_for_statement): Handle attributes.
+	* c-common.c (handle_unused_attribute): Warn if a statement
+	is marked as unused.
+	* c-tree.h (c_finish_loop): Add extra parameter.
+	* c-typeck.c (c_finish_loop): Handle attributes.
+	* doc/extend.texi (Attribute Syntax): Document statement attributes.
+	(Label Attributes): Explain how they apply to statements.
+	* tree-cfg.c (cleanup_dead_labels): Preserve labels with
+	user-specified alignment or attributes.
+	* stmt.c (expand_label): Update and correct documentation.
+
+	* c-common.c (handle_aligned_attribute): Handle LABEL_DECL.
+	* rtl.def (CODE_LABEL): Add 8th operand.
+	* rtl.h (LABEL_ALIGN_LOG): New.
+	(LABEL_MAX_SKIP): New.
+	(SET_LABEL_ALIGN): New.
+	* emit-rtl.c (gen_label_rtx): Adjust.
+	* print-rtl.c (print_rtx): Print LABEL_ALIGN_LOG.
+	* stmt.c (label_rtx): Set CODE_LABEL's alignment from DECL_ALIGN.
+	(expand_label): Update documentation.
+	* final.c (struct label_alignment): Delete.
+	(label_align): Delete.
+	(min_labelno): Delete.
+	(max_labelno): Delete.
+	(LABEL_TO_ALIGNMENT): Delete.
+	(LABEL_TO_MAX_SKIP): Delete.
+	(label_to_alignment): Adjust for LABEL_ALIGN_LOG.
+	(align_fuzz): Likewise.
+	(compute_alignments): Likewise.
+	(shorten_branches): Remove code to set up label_align.
+	Adjust for LABEL_ALIGN_LOG.
+	(final_scan_insn): Adjust for LABEL_ALIGN_LOG.
+	* doc/extend.texi (C Extensions): Add 'Label Attributes' to menu.
+	(Attribute Syntax): Move label content to Label Attributes.
+	(Function Attributes): Mention label attributes.
+	(Variable Attributes): Mention label attributes.
+	(Type Attributes): Mention label attributes.
+	(Label Attributes): New.

Modified: stable/8/contrib/gcc/ChangeLog.gcc43
==============================================================================
--- stable/8/contrib/gcc/ChangeLog.gcc43	Sat Aug 23 10:51:37 2014	(r270392)
+++ stable/8/contrib/gcc/ChangeLog.gcc43	Sat Aug 23 10:58:16 2014	(r270393)
@@ -1,9 +1,137 @@
+2007-07-12  Geoffrey Keating  <geoffk at apple.com> (r126588)
+
+	* builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
+	FUNCTION_DECL.
+	* tree.c (build_decl_stat): Move code from here...
+	(make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
+	(expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
+	about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
+	* tree.h (DECL_USER_ALIGN): Fix misplaced comment.
+	* varasm.c (assemble_start_function): Use DECL_ALIGN instead of
+	FUNCTION_BOUNDARY.
+
+2007-07-09  Geoffrey Keating  <geoffk at apple.com> (r126529)
+
+	PR 32617
+	* c-common.c (c_alignof_expr): Look at DECL_ALIGN of
+	FUNCTION_DECLs.
+	(handle_aligned_attribute): Allow use on FUNCTION_DECLs.
+	* varasm.c (assemble_start_function): Honor DECL_ALIGN
+	for FUNCTION_DECLs.  Don't use align_functions_log if
+	DECL_USER_ALIGN.
+	* print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
+	even for FUNCTION_DECLs.
+	* c-decl.c (merge_decls): Propagate DECL_ALIGN even for
+	FUNCTION_DECLs.
+	* tree.h (DECL_ALIGN): Update for new location of 'align'.
+	(DECL_FUNCTION_CODE): Update for new location and name of
+	'function_code'.
+	(DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
+	(struct tree_decl_common): Move 'align' and 'off_align' out
+	of union, ensure they're still on a 32-bit boundary.  Remove
+	other fields in union 'u1'.
+	(struct tree_function_decl): Add field 'function_code' replacing
+	'u1.f' in tree_decl_common.
+	* tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
+	* doc/extend.texi (Function Attributes): Add 'aligned' attribute.
+	(Variable Attributes): Cross-reference 'aligned' attribute
+	to Function Attributes.
+	* flags.h (force_align_functions_log): Delete.
+	* toplev.c (force_align_functions_log): Delete.
+
+2007-07-06  Josh Conner  <jconner at apple.com> (r126422)
+
+	PR middle-end/32602
+	PR middle-end/32603
+	* calls.c (store_one_arg): Handle arguments which are partially
+	on the stack when detecting argument overlap.
+
+2007-07-03  Eric Christopher  <echristo at apple.com> (r126278)
+
+	* doc/cppopts.texi: Add conflicting option note to -dM.
+	* doc/invoke.texi: Add note about possible conflicts with
+	-E for -dCHARS and note that -dM will not produce
+	any results if there is no machine dependent reorg.
+	
+2007-06-28  Geoffrey Keating  <geoffk at apple.com> (r126088)
+
+	* doc/invoke.texi (C++ Dialect Options): Document
+	fvisibility-ms-compat.
+	* c.opt (fvisibility-ms-compat): New.
+
+2007-06-23  Richard Earnshaw  <rearnsha at arm.com> (r125973)
+
+	PR target/31152
+	* arm.md (negscc): Match the correct operand for optimized LT0 test.
+	Remove optimization for GT.
+
 2007-06-05  Joerg Wunsch  <j.gnu at uriah.heep.sax.de> (r125346)
 
 	PR preprocessor/23479
 	* doc/extend.texi: Document the 0b-prefixed binary integer
 	constant extension.
 	
+2007-05-31  Eric Christopher  <echristo at apple.com> (r125246)
+
+	* expr.c (convert_move): Assert that we don't have a BLKmode
+	operand.
+	(store_expr): Handle BLKmode moves by calling emit_block_move.
+
+2007-05-31  Daniel Berlin  <dberlin at dberlin.org> (r125239)
+
+	* c-typeck.c (build_indirect_ref): Include type in error message.
+	(build_binary_op): Pass types to binary_op_error.
+	* c-common.c (binary_op_error): Take two type arguments, print out
+	types with error.
+	* c-common.h (binary_op_error): Update prototype.
+
+2007-05-27  Eric Christopher  <echristo at apple.com> (r125116)
+
+	* config/rs6000/rs6000.c (rs6000_emit_prologue): Update
+	sp_offset depending on stack size. Save r12 depending
+	on registers we're saving later.
+	(rs6000_emit_epilogue): Update sp_offset depending only
+	on stack size.
+
+2007-05-24  Richard Sandiford  <rsandifo at nildram.co.uk> (r125037)
+
+	* postreload-gcse.c (reg_changed_after_insn_p): New function.
+	(oprs_unchanged_p): Use it to check all registers in a REG.
+	(record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
+	(reg_set_between_after_reload_p): Delete.
+	(reg_used_between_after_reload_p): Likewise.
+	(reg_set_or_used_since_bb_start): Likewise.
+	(eliminate_partially_redundant_load): Use reg_changed_after_insn_p
+	and reg_used_between_p instead of reg_set_or_used_since_bb_start.
+	Use reg_set_between_p instead of reg_set_between_after_reload_p.
+	* rtlanal.c (reg_set_p): Check whether REG overlaps
+	regs_invalidated_by_call, rather than just checking the
+	membership of REGNO (REG).
+
+2007-05-18  Geoffrey Keating  <geoffk at apple.com> (r124839)
+ 
+	* dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
+	(output_die): Use 'unsigned long' with %x.
+	* sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
+	HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
+	* tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
+
+2007-05-16  Eric Christopher  <echristo at apple.com> (r124763)
+
+       * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
+        saving after stack push. Set sp_offset whenever we push.
+        (rs6000_emit_epilogue): Move altivec register restore before stack push.
+
+2007-05-03  Ian Lance Taylor  <iant at google.com> (r124381)
+
+	* config/rs6000/rs6000.c (rs6000_override_options): Don't set
+	MASK_PPC_GFXOPT for 8540 or 8548.
+
+2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal at amd.com> (r124341)
+
+	* doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of 
+	'AMD Family 10 core'.
+
 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal at amd.com> (r124339)
  
 	* config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3 
@@ -11,7 +139,18 @@
 	with SSE3 instruction set support.
 	* doc/invoke.texi: Likewise.
 
-2007-04-16  Lawrence Crowl  <crowl at google.com>
+2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal at amd.com> (r124330)
+
+	* config/i386/i386.c (override_options): Tuning 32-byte loop
+	alignment for amdfam10 architecture. Increasing the max loop
+	alignment to 24 bytes.
+
+2007-04-24  Hui-May Chang <hm.chang at apple.com> (r124115)
+
+	* reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
+	instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
+
+2007-04-16  Lawrence Crowl  <crowl at google.com> (r123909)
 
 	* doc/invoke.texi (Debugging Options): Add documentation for the
 	-femit-struct-debug options -femit-struct-debug-baseonly,
@@ -78,6 +217,30 @@
 
 	* config/i386/i386.c (ix86_handle_option): Handle SSSE3.
 
+2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal at amd.com> (r123313)
+
+	* config.gcc: Accept barcelona as a variant of amdfam10.
+	* config/i386/i386.c (override_options): Likewise.
+	* doc/invoke.texi: Likewise.
+
+2007-03-12  Seongbae Park <seongbae.park at gmail.com> (r122851)
+
+	* c-decl.c (warn_variable_length_array): New function.
+	Refactored from grokdeclarator to handle warn_vla
+	and handle unnamed array case.
+	(grokdeclarator): Refactored VLA warning case.
+	* c.opt (Wvla): New flag.
+
+2007-03-11  Ian Lance Taylor  <iant at google.com> (r122831 - partial)
+
+	* tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
+	the *_DIV_EXPR codes correctly with overflow infinities.
+
+2007-02-09  Dwarakanath Rajagopal <dwarak.rajagopal at amd.com> (r121763)
+
+	* config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
+	(bit_SSE4a): New.
+
 2007-02-08  Harsha Jagasia  <harsha.jagasia at amd.com> (r121726)
 
 	* config/i386/xmmintrin.h: Make inclusion of emmintrin.h
@@ -95,10 +258,226 @@
 
 	* config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
 
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+
+	* config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
+	athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
+	athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
+	athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
+	athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
+	athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
+	athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
+	athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
+
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+
+	* config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
+	cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
+	swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
+	fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
+	x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
+	floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
+	floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
+	mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
+	umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
+	umuldi3_highpart_rex64, umulsi3_highpart_insn,
+	umulsi3_highpart_zext, smuldi3_highpart_rex64,
+	smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
+	x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
+	sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
+	sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
+	sqrtextenddfxf2_i387): Added amdfam10_decode.
+	
+	* config/i386/athlon.md (athlon_idirect_amdfam10,
+	athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
+	athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
+	athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
+	athlon_ivector_store_amdfam10): New define_insn_reservation.
+	(athlon_idirect_loadmov, athlon_idirect_movstore): Added
+	amdfam10.
+
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+
+	* config/i386/athlon.md (athlon_call_amdfam10,
+	athlon_pop_amdfam10, athlon_lea_amdfam10): New
+	define_insn_reservation.
+	(athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
+	athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
+	athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
+
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+
+	* config/i386/athlon.md (athlon_sseld_amdfam10,
+	athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
+	athlon_mmxssest_short_amdfam10): New define_insn_reservation.
+
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+
+	* config/i386/athlon.md (athlon_sseins_amdfam10): New
+	define_insn_reservation.
+	* config/i386/i386.md (sseins): Added sseins to define_attr type
+	and define_attr unit.
+	* config/i386/sse.md: Set type attribute to sseins for insertq
+	and insertqi.
+
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+
+	* config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
+	ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
+	ssecomi_load_amdfam10, ssecomi_amdfam10,
+	sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
+	define_insn_reservation.
+	(ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
+
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+
+	* config/i386/athlon.md (cvtss2sd_load_amdfam10,
+	cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
+	cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
+	cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
+	cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
+	cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New 
+	define_insn_reservation.
+
+	* config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
+	cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
+	cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
+	cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
+	cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
+
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+
+	* config/i386/athlon.md (athlon_ssedivvector_amdfam10,
+	athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
+	athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
+	(athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
+	athlon_ssemul_load_k8): Added amdfam10.
+
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+
+	* config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
+	(x86_sse_unaligned_move_optimal): New variable.
+	
+	* config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for  
+	m_AMDFAM10.
+	(ix86_expand_vector_move_misalign): Add code to generate movupd/movups
+	for unaligned vector SSE double/single precision loads for AMDFAM10.
+
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+
+	* config/i386/i386.h (TARGET_AMDFAM10): New macro.
+	(TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
+	Define TARGET_CPU_DEFAULT_amdfam10.
+	(TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
+	(processor_type): Add PROCESSOR_AMDFAM10.	
+	
+	* config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
+	processor_type in config/i386/i386.h.
+	Enable imul peepholes for TARGET_AMDFAM10.
+	
+	* config.gcc: Add support for --with-cpu option for amdfam10.
+	
+	* config/i386/i386.c (amdfam10_cost): New variable.
+	(m_AMDFAM10): New macro.
+	(m_ATHLON_K8_AMDFAM10): New macro.
+	(x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
+	x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
+	x86_promote_QImode, x86_integer_DFmode_moves,
+	x86_partial_reg_dependency, x86_memory_mismatch_stall, 
+	x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
+	x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
+	x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
+	x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
+	Enable/disable for amdfam10.
+	(override_options): Add amdfam10_cost to processor_target_table.
+	Set up PROCESSOR_AMDFAM10 for amdfam10 entry in 
+	processor_alias_table.
+	(ix86_issue_rate): Add PROCESSOR_AMDFAM10.
+	(ix86_adjust_cost): Add code for amdfam10.
+
+2007-02-05  Harsha Jagasia  <harsha.jagasia at amd.com> (r121625)
+	
+	* config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
+	instruction set feature flag. Add new (-mpopcnt) flag for popcnt 
+	instruction. Add new SSE4A (-msse4a) instruction set feature flag.
+	* config/i386/i386.h: Add builtin definition for SSE4A.
+	* config/i386/i386.md: Add support for ABM instructions 
+	(popcnt and lzcnt).
+	* config/i386/sse.md: Add support for SSE4A instructions
+	(movntss, movntsd, extrq, insertq).
+	* config/i386/i386.c: Add support for ABM and SSE4A builtins.
+	Add -march=amdfam10 flag.
+	* config/i386/ammintrin.h: Add support for SSE4A intrinsics.
+	* doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
+	and amdfam10.
+	* doc/extend.texi: Add documentation for SSE4A builtins.
+
+2007-01-24  Jakub Jelinek  <jakub at redhat.com> (r121140)
+
+	* config/i386/i386.h (x86_cmpxchg16b): Remove const.
+	(TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
+	* config/i386/i386.c (x86_cmpxchg16b): Remove const.
+	(override_options): Add PTA_CX16 flag.  Set x86_cmpxchg16b
+	for CPUs that have PTA_CX16 set.
+
+2007-01-18  Josh Conner  <jconner at apple.com> (r120902)
+
+	PR target/30485
+	* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
+	support for UNLE, UNLT, UNGE, and UNGT.
+
 2007-01-17  Eric Christopher  <echristo at apple.com> (r120846)
 
 	* config.gcc: Support core2 processor.
 
+2007-01-11  Joseph Myers  <joseph at codesourcery.com> (r120688)
+
+	* c-common.c (vector_types_convertible_p): Treat opaque types as
+	always convertible if they have the same size, but not otherwise.
+
+2007-01-08  Geoffrey Keating  <geoffk at apple.com> (r120611)
+ 
+	* target.h (struct gcc_target): New field library_rtti_comdat.
+	* target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
+	(TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
+	* doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
+	* config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
+
+2007-01-08  Mark Shinwell  <shinwell at codesourcery.com> (r120572)
+
+	* c.opt: Add -flax-vector-conversions.
+	* c-typeck.c (convert_for_assignment): Pass flag to
+	vector_types_convertible_p to allow emission of note.
+	(digest_init): Likewise.
+	* c-opts.c: Handle -flax-vector-conversions.
+	* c-common.c (flag_lax_vector_conversions): New.
+	(vector_types_convertible_p): Unless -flax-vector conversions
+	has been passed, disallow conversions between vectors with
+	differing numbers of subparts and/or element types.  If such
+	a conversion is disallowed, possibly emit a note on the first
+	occasion only to inform the user of -flax-vector-conversions.
+	The new last argument specifies this.
+	* c-common.h (flag_lax_vector_conversions): New.
+	(vector_types_convertible_p): Add extra argument.
+	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
+	char_type_node for V*QI type vectors.
+	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
+	Update to satisfy new typechecking rules.
+	* config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
+	C and C++ variants.
+	* doc/invoke.texi (C Dialect Options): Document
+	-flax-vector-conversions.
+
+2007-01-05  Manuel Lopez-Ibanez  <manu at gcc.gnu.org> (r120505)
+
+	PR c/19978
+	* tree.h (TREE_OVERFLOW_P): New.
+	* c-typeck.c (parser_build_unary_op): Warn only if result
+	overflowed and operands did not.
+	(parser_build_binary_op): Likewise.
+	(convert_for_assignment): Remove redundant overflow_warning.
+	* c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
+
 2006-12-13  Ian Lance Taylor  <iant at google.com> (r119855)
 
 	PR c++/19564
@@ -115,6 +494,11 @@
 	PR target/30040
 	* config/i386/driver-i386.c (bit_SSSE3): New.
 
+2006-11-27  Uros Bizjak  <ubizjak at gmail.com> (r119260)
+
+	* config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2
+	and m_GENERIC64.
+
 2006-11-18  Vladimir Makarov  <vmakarov at redhat.com> (r118973)
 
 	* doc/invoke.texi (core2): Add item.
@@ -143,6 +527,69 @@
 	(override_options): Add entries for Core2.
 	(ix86_issue_rate): Add case for Core2.
 	
+2006-11-14  Caroline Tice  <ctice at apple.com> (r118826)
+		
+	* dwarf2out.c (debug_pubtypes_section): New static global variable.
+	(pubname_entry):  Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
+	this type.
+	(pubname_table):  Redefine as a vector.
+	(pubtype_table):  New static global variable, defined as a vector.
+	(pubname_table_allocated): Remove static global variable.
+	(pubname_table_in_use): Remove static global variable.
+	(PUBNAME_TABLE_INCREMENT): Remove constant.
+	(size_of_pubnames): Add parameter to deal with either pubnames or 
+	pubtypes, and change code to deal with table being a vector.
+	(add_pubname):  Change to deal with table being a vector.
+	(add_pubtype):  New function.
+	(output_pubnames): Add parameter to deal with either pubnames or 
+	pubtypes, and change code to deal with table being a vector.
+	(gen_array_type_die):  Add call to add_pubtype.
+	(gen_enumeration_type_die): Add call to add_pubtype.
+	(gen_struct_or_union_type_die): Add call to add_pubtype.
+	(gen_subroutine_type_die): Add call to add_pubtype.
+	(gen_typedef_die):  Add call to add_pubtype.
+	(dwarf2out_init): Add code to initialize pubname_table and 
+	pubtype_table vectors; also initialize debug_pubtypes_section.
+	(prune_unused_types):  Change to deal with pubnames being a vector.
+	(dwarf2out_finish): Change to deal with pubnames being a vector; add 
+	pubnames table to call to output_pubnames;  Add code to output pubtypes 
+	table if DEBUG_PUBTYPES_SECTION is defined.
+	* config/darwin.c (darwin_file_start):  Add DEBUG_PUBTYPES_SECTION to 
+	debugnames.
+	* config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
+
+2006-11-07  Eric Christopher  <echristo at apple.com> (r118576)
+
+	* libgcc2.c (__bswapdi2): Rename from bswapDI2.
+	(__bswapsi2): Ditto.
+	* libgcc2.h: Remove transformation of bswap routines.
+	* config/i386/i386.md (bswapsi2): New.
+	(bswapdi2): Ditto.
+
+2006-11-03  Paul Brook  <paul at codesourcery.com> (r118461)
+
+	gcc/
+	* config/arm/arm.c (arm_file_start): New function.
+	(TARGET_ASM_FILE_START): Define.
+	(arm_default_cpu): New variable.
+	(arm_override_options): Set arm_default_cpu.
+
+2006-10-31  Geoffrey Keating  <geoffk at apple.com> (r118360)
+ 
+	* coverage.c (coverage_checksum_string): Update comment.
+	* dwarf2out.c (switch_to_eh_frame_section): Update for removal
+	of get_file_function_name.
+	* cgraphunit.c (cgraph_build_static_cdtor): Update for rename
+	of get_file_function_name_long.
+	* tree.c (get_file_function_name): Rename from
+	get_file_function_name_long; improve comment; handle 'I' and 'D'
+	specially when the target has ctor/dtor support; remove special
+	handling for 'F'.
+	(get_file_function_name): Remove.
+	* tree.h (get_file_function_name): Rename from
+        get_file_function_name_long.
+	(get_file_function_name): Remove prototype.
+
 2006-10-31  Geoffrey Keating  <geoffk at apple.com> (r118356)
 
 	* c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
@@ -279,7 +726,7 @@
 
 	* doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
 
-2006-10-22  H.J. Lu  <hongjiu.lu at intel.com>
+2006-10-22  H.J. Lu  <hongjiu.lu at intel.com> (r117959)
   	 
 	* config/i386/tmmintrin.h: Remove the duplicated content.
 

Modified: stable/8/contrib/gcc/builtins.c
==============================================================================
--- stable/8/contrib/gcc/builtins.c	Sat Aug 23 10:51:37 2014	(r270392)
+++ stable/8/contrib/gcc/builtins.c	Sat Aug 23 10:58:16 2014	(r270393)
@@ -315,9 +315,7 @@ get_pointer_alignment (tree exp, unsigne
 	      else if (offset)
 		inner = MIN (inner, BITS_PER_UNIT);
 	    }
-	  if (TREE_CODE (exp) == FUNCTION_DECL)
-	    align = FUNCTION_BOUNDARY;
-	  else if (DECL_P (exp))
+	  if (DECL_P (exp))
 	    align = MIN (inner, DECL_ALIGN (exp));
 #ifdef CONSTANT_ALIGNMENT
 	  else if (CONSTANT_CLASS_P (exp))

Modified: stable/8/contrib/gcc/c-common.c
==============================================================================
--- stable/8/contrib/gcc/c-common.c	Sat Aug 23 10:51:37 2014	(r270392)
+++ stable/8/contrib/gcc/c-common.c	Sat Aug 23 10:58:16 2014	(r270393)
@@ -254,6 +254,10 @@ int flag_short_double;
 
 int flag_short_wchar;
 
+/* Nonzero means allow implicit conversions between vectors with
+   differing numbers of subparts and/or differing element types.  */
+int flag_lax_vector_conversions;
+
 /* Nonzero means allow Microsoft extensions without warnings or errors.  */
 int flag_ms_extensions;
 
@@ -537,6 +541,9 @@ static tree handle_pure_attribute (tree 
 static tree handle_novops_attribute (tree *, tree, tree, int, bool *);
 static tree handle_deprecated_attribute (tree *, tree, tree, int,
 					 bool *);
+/* APPLE LOCAL begin "unavailable" attribute (Radar 2809697) --ilr */
+static tree handle_unavailable_attribute (tree *, tree, tree, int,  bool *);
+/* APPLE LOCAL end "unavailable" attribute --ilr */
 static tree handle_vector_size_attribute (tree *, tree, tree, int,
 					  bool *);
 static tree handle_nonnull_attribute (tree *, tree, tree, int, bool *);
@@ -622,6 +629,10 @@ const struct attribute_spec c_common_att
 			      handle_novops_attribute },
   { "deprecated",             0, 0, false, false, false,
 			      handle_deprecated_attribute },
+  /* APPLE LOCAL begin "unavailable" attribute (Radar 2809697) --ilr */
+  { "unavailable",            0, 0, false, false, false,
+			      handle_unavailable_attribute },
+  /* APPLE LOCAL end "unavailable" attribute --ilr */
   { "vector_size",	      1, 1, false, true, false,
 			      handle_vector_size_attribute },
   { "visibility",	      1, 1, false, false, false,
@@ -916,39 +927,45 @@ constant_expression_warning (tree value)
     pedwarn ("overflow in constant expression");
 }
 
-/* Print a warning if an expression had overflow in folding.
+/* Print a warning if an expression had overflow in folding and its
+   operands hadn't.
+
    Invoke this function on every expression that
    (1) appears in the source code, and
-   (2) might be a constant expression that overflowed, and
+   (2) is a constant expression that overflowed, and
    (3) is not already checked by convert_and_check;
-   however, do not invoke this function on operands of explicit casts.  */
+   however, do not invoke this function on operands of explicit casts
+   or when the expression is the result of an operator and any operand
+   already overflowed.  */
 
 void
 overflow_warning (tree value)
 {
-  if ((TREE_CODE (value) == INTEGER_CST
-       || (TREE_CODE (value) == COMPLEX_CST
-	   && TREE_CODE (TREE_REALPART (value)) == INTEGER_CST))
-      && TREE_OVERFLOW (value))
-    {
-      TREE_OVERFLOW (value) = 0;
-      if (skip_evaluation == 0)
-	warning (OPT_Woverflow, "integer overflow in expression");
-    }
-  else if ((TREE_CODE (value) == REAL_CST
-	    || (TREE_CODE (value) == COMPLEX_CST
-		&& TREE_CODE (TREE_REALPART (value)) == REAL_CST))
-	   && TREE_OVERFLOW (value))
-    {
-      TREE_OVERFLOW (value) = 0;
-      if (skip_evaluation == 0)
-	warning (OPT_Woverflow, "floating point overflow in expression");
-    }
-  else if (TREE_CODE (value) == VECTOR_CST && TREE_OVERFLOW (value))
-    {
-      TREE_OVERFLOW (value) = 0;
-      if (skip_evaluation == 0)
-	warning (OPT_Woverflow, "vector overflow in expression");
+  if (skip_evaluation) return;
+
+  switch (TREE_CODE (value))
+    {
+    case INTEGER_CST:
+      warning (OPT_Woverflow, "integer overflow in expression");
+      break;
+      
+    case REAL_CST:
+      warning (OPT_Woverflow, "floating point overflow in expression");
+      break;
+      
+    case VECTOR_CST:
+      warning (OPT_Woverflow, "vector overflow in expression");
+      break;
+      
+    case COMPLEX_CST:
+      if (TREE_CODE (TREE_REALPART (value)) == INTEGER_CST)
+	warning (OPT_Woverflow, "complex integer overflow in expression");
+      else if (TREE_CODE (TREE_REALPART (value)) == REAL_CST)
+	warning (OPT_Woverflow, "complex floating point overflow in expression");
+      break;
+
+    default:
+      break;
     }
 }
 
@@ -983,35 +1000,67 @@ unsigned_conversion_warning (tree result
    strict aliasing mode is in effect. OTYPE is the original
    TREE_TYPE of EXPR, and TYPE the type we're casting to. */
 
-void
+bool
 strict_aliasing_warning (tree otype, tree type, tree expr)
 {
-  if (flag_strict_aliasing && warn_strict_aliasing
-      && POINTER_TYPE_P (type) && POINTER_TYPE_P (otype)
-      && TREE_CODE (expr) == ADDR_EXPR
+  if (!(flag_strict_aliasing && POINTER_TYPE_P (type) 
+        && POINTER_TYPE_P (otype) && !VOID_TYPE_P (TREE_TYPE (type))))
+    return false;
+
+  if ((warn_strict_aliasing > 1) && TREE_CODE (expr) == ADDR_EXPR
       && (DECL_P (TREE_OPERAND (expr, 0))
-          || handled_component_p (TREE_OPERAND (expr, 0)))
-      && !VOID_TYPE_P (TREE_TYPE (type)))
+          || handled_component_p (TREE_OPERAND (expr, 0))))
     {
       /* Casting the address of an object to non void pointer. Warn
          if the cast breaks type based aliasing.  */
-      if (!COMPLETE_TYPE_P (TREE_TYPE (type)))
-        warning (OPT_Wstrict_aliasing, "type-punning to incomplete type "
-                 "might break strict-aliasing rules");
+      if (!COMPLETE_TYPE_P (TREE_TYPE (type)) && warn_strict_aliasing == 2)
+	{
+	  warning (OPT_Wstrict_aliasing, "type-punning to incomplete type "
+		   "might break strict-aliasing rules");
+	  return true;
+	}
       else
         {
-          HOST_WIDE_INT set1 = get_alias_set (TREE_TYPE (TREE_OPERAND (expr, 0)));
+          /* warn_strict_aliasing >= 3.   This includes the default (3).  
+             Only warn if the cast is dereferenced immediately.  */
+          HOST_WIDE_INT set1 =
+	    get_alias_set (TREE_TYPE (TREE_OPERAND (expr, 0)));
           HOST_WIDE_INT set2 = get_alias_set (TREE_TYPE (type));
 
           if (!alias_sets_conflict_p (set1, set2))
-            warning (OPT_Wstrict_aliasing, "dereferencing type-punned "
-                     "pointer will break strict-aliasing rules");
-          else if (warn_strict_aliasing > 1
-                  && !alias_sets_might_conflict_p (set1, set2))
-            warning (OPT_Wstrict_aliasing, "dereferencing type-punned "
-                     "pointer might break strict-aliasing rules");
+	    {
+	      warning (OPT_Wstrict_aliasing, "dereferencing type-punned "
+		       "pointer will break strict-aliasing rules");
+	      return true;
+	    }
+          else if (warn_strict_aliasing == 2
+		   && !alias_sets_might_conflict_p (set1, set2))
+	    {
+	      warning (OPT_Wstrict_aliasing, "dereferencing type-punned "
+		       "pointer might break strict-aliasing rules");
+	      return true;
+	    }
         }
     }
+  else
+    if ((warn_strict_aliasing == 1) && !VOID_TYPE_P (TREE_TYPE (otype)))
+      {
+        /* At this level, warn for any conversions, even if an address is
+           not taken in the same statement.  This will likely produce many
+           false positives, but could be useful to pinpoint problems that
+           are not revealed at higher levels.  */
+        HOST_WIDE_INT set1 = get_alias_set (TREE_TYPE (otype));
+        HOST_WIDE_INT set2 = get_alias_set (TREE_TYPE (type));
+        if (!COMPLETE_TYPE_P(type)
+            || !alias_sets_might_conflict_p (set1, set2))
+	  {
+            warning (OPT_Wstrict_aliasing, "dereferencing type-punned "
+                     "pointer might break strict-aliasing rules");
+            return true;
+          }
+      }
+
+  return false;
 }
 
 
@@ -1057,18 +1106,45 @@ constant_fits_type_p (tree c, tree type)
   return !TREE_OVERFLOW (c);
 }
 
-/* Nonzero if vector types T1 and T2 can be converted to each other
-   without an explicit cast.  */
-int
-vector_types_convertible_p (tree t1, tree t2)
+
+/* True if vector types T1 and T2 can be converted to each other
+   without an explicit cast.  If EMIT_LAX_NOTE is true, and T1 and T2
+   can only be converted with -flax-vector-conversions yet that is not
+   in effect, emit a note telling the user about that option if such
+   a note has not previously been emitted.  */
+bool
+vector_types_convertible_p (tree t1, tree t2, bool emit_lax_note)
 {
-  return targetm.vector_opaque_p (t1)
-	 || targetm.vector_opaque_p (t2)
-	 || (tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2))
-	     && (TREE_CODE (TREE_TYPE (t1)) != REAL_TYPE ||
-		 TYPE_PRECISION (t1) == TYPE_PRECISION (t2))
-	     && INTEGRAL_TYPE_P (TREE_TYPE (t1))
-		== INTEGRAL_TYPE_P (TREE_TYPE (t2)));
+  static bool emitted_lax_note = false;
+  bool convertible_lax;
+
+  if ((targetm.vector_opaque_p (t1) || targetm.vector_opaque_p (t2))
+      && tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2)))
+    return true;
+
+  convertible_lax =
+    (tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2))
+     && (TREE_CODE (TREE_TYPE (t1)) != REAL_TYPE ||
+	 TYPE_PRECISION (t1) == TYPE_PRECISION (t2))
+     && (INTEGRAL_TYPE_P (TREE_TYPE (t1))
+	 == INTEGRAL_TYPE_P (TREE_TYPE (t2))));
+
+  if (!convertible_lax || flag_lax_vector_conversions)
+    return convertible_lax;
+
+  if (TYPE_VECTOR_SUBPARTS (t1) == TYPE_VECTOR_SUBPARTS (t2)
+      && comptypes (TREE_TYPE (t1), TREE_TYPE (t2)))
+    return true;
+
+  if (emit_lax_note && !emitted_lax_note)
+    {
+      emitted_lax_note = true;
+      inform ("use -flax-vector-conversions to permit "
+              "conversions between vectors with differing "
+              "element types or numbers of subparts");
+    }
+
+  return false;
 }
 
 /* Convert EXPR to TYPE, warning about conversion problems with constants.
@@ -1950,10 +2026,10 @@ min_precision (tree value, int unsignedp
 }
 

 /* Print an error message for invalid operands to arith operation
-   CODE.  */
+   CODE with TYPE0 for operand 0, and TYPE1 for operand 1.  */
 
 void
-binary_op_error (enum tree_code code)
+binary_op_error (enum tree_code code, tree type0, tree type1)
 {
   const char *opname;
 
@@ -2004,7 +2080,8 @@ binary_op_error (enum tree_code code)
     default:
       gcc_unreachable ();
     }
-  error ("invalid operands to binary %s", opname);
+  error ("invalid operands to binary %s (have %qT and %qT)", opname,
+	 type0, type1);
 }
 

 /* Subroutine of build_binary_op, used for comparison operations.
@@ -2957,16 +3034,16 @@ c_sizeof_or_alignof_type (tree type, boo
 }
 
 /* Implement the __alignof keyword: Return the minimum required
-   alignment of EXPR, measured in bytes.  For VAR_DECL's and
-   FIELD_DECL's return DECL_ALIGN (which can be set from an
-   "aligned" __attribute__ specification).  */
+   alignment of EXPR, measured in bytes.  For VAR_DECLs,
+   FUNCTION_DECLs and FIELD_DECLs return DECL_ALIGN (which can be set
+   from an "aligned" __attribute__ specification).  */
 
 tree
 c_alignof_expr (tree expr)
 {
   tree t;
 
-  if (TREE_CODE (expr) == VAR_DECL)
+  if (VAR_OR_FUNCTION_DECL_P (expr))
     t = size_int (DECL_ALIGN_UNIT (expr));
 
   else if (TREE_CODE (expr) == COMPONENT_REF
@@ -3108,6 +3185,85 @@ def_fn_type (builtin_type def, builtin_t
   builtin_types[def] = t;
 }
 
+/* Build builtin functions common to both C and C++ language
+   frontends.  */
+
+static void
+c_define_builtins (tree va_list_ref_type_node, tree va_list_arg_type_node)
+{
+#define DEF_PRIMITIVE_TYPE(ENUM, VALUE) \
+  builtin_types[ENUM] = VALUE;
+#define DEF_FUNCTION_TYPE_0(ENUM, RETURN) \
+  def_fn_type (ENUM, RETURN, 0, 0);
+#define DEF_FUNCTION_TYPE_1(ENUM, RETURN, ARG1) \
+  def_fn_type (ENUM, RETURN, 0, 1, ARG1);
+#define DEF_FUNCTION_TYPE_2(ENUM, RETURN, ARG1, ARG2) \
+  def_fn_type (ENUM, RETURN, 0, 2, ARG1, ARG2);
+#define DEF_FUNCTION_TYPE_3(ENUM, RETURN, ARG1, ARG2, ARG3) \
+  def_fn_type (ENUM, RETURN, 0, 3, ARG1, ARG2, ARG3);
+#define DEF_FUNCTION_TYPE_4(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) \
+  def_fn_type (ENUM, RETURN, 0, 4, ARG1, ARG2, ARG3, ARG4);
+#define DEF_FUNCTION_TYPE_5(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)	\
+  def_fn_type (ENUM, RETURN, 0, 5, ARG1, ARG2, ARG3, ARG4, ARG5);
+#define DEF_FUNCTION_TYPE_6(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \
+			    ARG6)					\
+  def_fn_type (ENUM, RETURN, 0, 6, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6);
+#define DEF_FUNCTION_TYPE_7(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \
+			    ARG6, ARG7)					\
+  def_fn_type (ENUM, RETURN, 0, 7, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7);
+#define DEF_FUNCTION_TYPE_VAR_0(ENUM, RETURN) \
+  def_fn_type (ENUM, RETURN, 1, 0);
+#define DEF_FUNCTION_TYPE_VAR_1(ENUM, RETURN, ARG1) \
+  def_fn_type (ENUM, RETURN, 1, 1, ARG1);
+#define DEF_FUNCTION_TYPE_VAR_2(ENUM, RETURN, ARG1, ARG2) \
+  def_fn_type (ENUM, RETURN, 1, 2, ARG1, ARG2);
+#define DEF_FUNCTION_TYPE_VAR_3(ENUM, RETURN, ARG1, ARG2, ARG3) \
+  def_fn_type (ENUM, RETURN, 1, 3, ARG1, ARG2, ARG3);
+#define DEF_FUNCTION_TYPE_VAR_4(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) \
+  def_fn_type (ENUM, RETURN, 1, 4, ARG1, ARG2, ARG3, ARG4);
+#define DEF_FUNCTION_TYPE_VAR_5(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5) \
+  def_fn_type (ENUM, RETURN, 1, 5, ARG1, ARG2, ARG3, ARG4, ARG5);
+#define DEF_POINTER_TYPE(ENUM, TYPE) \
+  builtin_types[(int) ENUM] = build_pointer_type (builtin_types[(int) TYPE]);
+
+#include "builtin-types.def"
+
+#undef DEF_PRIMITIVE_TYPE
+#undef DEF_FUNCTION_TYPE_1
+#undef DEF_FUNCTION_TYPE_2
+#undef DEF_FUNCTION_TYPE_3
+#undef DEF_FUNCTION_TYPE_4
+#undef DEF_FUNCTION_TYPE_5
+#undef DEF_FUNCTION_TYPE_6
+#undef DEF_FUNCTION_TYPE_VAR_0
+#undef DEF_FUNCTION_TYPE_VAR_1
+#undef DEF_FUNCTION_TYPE_VAR_2
+#undef DEF_FUNCTION_TYPE_VAR_3
+#undef DEF_FUNCTION_TYPE_VAR_4
+#undef DEF_FUNCTION_TYPE_VAR_5
+#undef DEF_POINTER_TYPE
+  builtin_types[(int) BT_LAST] = NULL_TREE;
+
+  c_init_attributes ();
+
+#define DEF_BUILTIN(ENUM, NAME, CLASS, TYPE, LIBTYPE, BOTH_P, FALLBACK_P, \
+		    NONANSI_P, ATTRS, IMPLICIT, COND)			\
+  if (NAME && COND)							\
+    def_builtin_1 (ENUM, NAME, CLASS,                                   \
+		   builtin_types[(int) TYPE],                           \
+		   builtin_types[(int) LIBTYPE],                        \
+		   BOTH_P, FALLBACK_P, NONANSI_P,                       \
+		   built_in_attributes[(int) ATTRS], IMPLICIT);
+#include "builtins.def"
+#undef DEF_BUILTIN
+
+  build_common_builtin_nodes ();
+
+  targetm.init_builtins ();
+  if (flag_mudflap)
+    mudflap_init ();
+}
+
 /* Build tree nodes and builtin functions common to both C and C++ language
    frontends.  */
 
@@ -3320,77 +3476,8 @@ c_common_nodes_and_builtins (void)
       va_list_ref_type_node = build_reference_type (va_list_type_node);
     }
 
-#define DEF_PRIMITIVE_TYPE(ENUM, VALUE) \
-  builtin_types[ENUM] = VALUE;
-#define DEF_FUNCTION_TYPE_0(ENUM, RETURN) \
-  def_fn_type (ENUM, RETURN, 0, 0);
-#define DEF_FUNCTION_TYPE_1(ENUM, RETURN, ARG1) \
-  def_fn_type (ENUM, RETURN, 0, 1, ARG1);
-#define DEF_FUNCTION_TYPE_2(ENUM, RETURN, ARG1, ARG2) \
-  def_fn_type (ENUM, RETURN, 0, 2, ARG1, ARG2);
-#define DEF_FUNCTION_TYPE_3(ENUM, RETURN, ARG1, ARG2, ARG3) \
-  def_fn_type (ENUM, RETURN, 0, 3, ARG1, ARG2, ARG3);
-#define DEF_FUNCTION_TYPE_4(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) \
-  def_fn_type (ENUM, RETURN, 0, 4, ARG1, ARG2, ARG3, ARG4);
-#define DEF_FUNCTION_TYPE_5(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)	\
-  def_fn_type (ENUM, RETURN, 0, 5, ARG1, ARG2, ARG3, ARG4, ARG5);
-#define DEF_FUNCTION_TYPE_6(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \
-			    ARG6)					\
-  def_fn_type (ENUM, RETURN, 0, 6, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6);
-#define DEF_FUNCTION_TYPE_7(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \
-			    ARG6, ARG7)					\
-  def_fn_type (ENUM, RETURN, 0, 7, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7);
-#define DEF_FUNCTION_TYPE_VAR_0(ENUM, RETURN) \
-  def_fn_type (ENUM, RETURN, 1, 0);
-#define DEF_FUNCTION_TYPE_VAR_1(ENUM, RETURN, ARG1) \
-  def_fn_type (ENUM, RETURN, 1, 1, ARG1);

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-all mailing list