Commit Graph

87880 Commits

Author SHA1 Message Date
Nathan Sidwell
c427220a8c * except.h: Correct checks for when SJLJ exceptions must be used.
From-SVN: r136568
2008-06-08 19:06:49 +00:00
Manuel López-Ibáñez
cf0fd6189a invoke.texi (Wenum-compare): Mention that it is enabled by default.
2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Wenum-compare): Mention that it is enabled by
	default.

From-SVN: r136567
2008-06-08 16:56:57 +00:00
Bruce Korb
0fc38aaa37 Update the copyright years and put the licensing text directly into the template file.
Update the copyright years and put the licensing text directly
into the template file.  The license needs to be version dependent, so burn
it in directly.

From-SVN: r136566
2008-06-08 16:22:00 +00:00
Joseph Myers
f8c33439c6 re PR tree-optimization/36218 (VRP causes stack overflow while building libgcj)
PR tree-optimization/36218
	* Makefile.def (flags_to_pass): Add LDFLAGS_FOR_BUILD.
	* Makefile.tpl (EXTRA_BUILD_FLAGS): Define.
	(all prefix="build-"): Pass them to build-system sub-makes.
	* Makefile.in: Regenerate.

config:
	* config/mh-mingw (LDFLAGS): Define.

gcc:
	* configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
	configure for the build system.
	(BUILD_LDFLAGS): Define.
	* configure: Regenerate.
	* Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.

From-SVN: r136563
2008-06-08 17:14:33 +01:00
Anatoly Sokolov
91635d0806 re PR target/36424 (avr-gcc use don't saved registers in ISR with -O3 ('-frename-registers' ) optimization)
PR target/36424
	* config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
	* config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
	* config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.

From-SVN: r136562
2008-06-08 20:08:08 +04:00
Bruce Korb
929a75b24f Remove commentary fixes. Regenerate fixincl.x just to show there is no difference.
From-SVN: r136561
2008-06-08 16:07:17 +00:00
Janus Weil
c1db9545dd re PR fortran/36459 (Wrong interface use for PROCEDURE)
2008-06-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36459
	* decl.c (match_procedure_decl): Correctly recognize if the interface
	is an intrinsic procedure.


2008-06-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36459
	* gfortran.dg/proc_decl_16.f90: New.

From-SVN: r136555
2008-06-08 13:55:41 +02:00
Tobias Burnus
2d9bbb6b6d re PR fortran/35830 (ICE with PROCEDURE(<interface>) containing array formal arguments)
2008-06-08  Tobias Burnus  <burnus@net-b.de>

       PR fortran/35830
       * resolve.c (resolve_symbol): Copy more attributes for
       PROCEDUREs with interfaces.

2008-06-08  Tobias Burnus  <burnus@net-b.de>

       PR fortran/35830
       * proc_decl_13.f90: New.
       * proc_decl_14.f90: New.
       * proc_decl_15.f90: New.

From-SVN: r136554
2008-06-08 09:48:53 +02:00
GCC Administrator
34b74cdf11 Daily bump.
From-SVN: r136551
2008-06-08 00:17:13 +00:00
Jerry DeLisle
b16c169167 re PR fortran/36420 (Fortran 2008: g0 edit descriptor)
2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/36420
	PR fortran/36421
	PR fortran/36422
	* gfortran.dg/fmt_g0_1.f08: New test.
	* gfortran.dg/fmt_g0_2.f08: New test.
	* gfortran.dg/fmt_g0_3.f08: New test.

From-SVN: r136547
2008-06-08 00:09:01 +00:00
Jerry DeLisle
29d3b5ff72 Fix ChangeLog
From-SVN: r136546
2008-06-08 00:01:19 +00:00
Jerry DeLisle
9355110f96 re PR fortran/36420 (Fortran 2008: g0 edit descriptor)
2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/36420
	PR libfortran/36421
	PR libfortran/36422
	* io/io.h: Add prototype for write_real.
	* io/transfer.c (formatted_transfer_scalar): For FMT_G and width zero,
	use write_real.
	* io/format.c: Add zero width error message. (parse_format_list): Use
	error message for FMT_A if followed by FMT_ZERO. Use zero width error
	message	for FMT_G if mode is READ or if -std=f95 or f2003. (fmormat0):
	Fix typo in comment.
	* io/write.c (write_a): Set wlen to len if FMT_G and length is zero.
	(write_l): Add wlen variable and use it if FMT_G and width is zero.
	(write_decimal): If FMT_G, set m to -1 to flag processor dependent
	formatting. (write_real): Remove static declaration.

From-SVN: r136545
2008-06-07 23:59:53 +00:00
Jerry DeLisle
8955a00563 PR fortran/36420, 36422
2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/36420, 36422
	* io.c (check_format): Add new error message for zero width. Use new
	error message for FMT_A and with READ, FMT_G.  Allow FMT_G with WRITE
	except when -std=F95 and -std=F2003.

From-SVN: r136544
2008-06-07 23:55:47 +00:00
Xinliang David Li
359ce95f40 cdce1.c: Remove run target clause.
2008-06-07  Xinliang David Li  <davidxl@google.com>

	PR/36440
	* gcc.dg/cdce1.c: Remove run target clause.
	* gcc.dg/cdce2.c: Ditto.
	* g++.dg/cdce3.C: Fix a bug in target specification.

From-SVN: r136542
2008-06-07 22:56:15 +00:00
Danny Smith
ae06ac00a4 cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
* config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.

From-SVN: r136541
2008-06-07 22:50:24 +00:00
Bruce Korb
0b9f07d4d8 copy in the new generated "pthread.h" header
From-SVN: r136540
2008-06-07 22:25:33 +00:00
Bruce Korb
c8b3863705 clean up fixes
From-SVN: r136539
2008-06-07 22:19:45 +00:00
Tobias Burnus
8cec30d3c4 Add missing PR to change log. (Forgot it in Rev. 136536)
From-SVN: r136537
2008-06-07 20:56:19 +02:00
Tobias Burnus
8d82b24239 re PR fortran/36437 (Simplify argument to [c_]sizeof)
2008-06-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/36437
        * intrinsic.c (add_functions): Implement c_sizeof.
        * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not
        create unneeded variable in the scalar case.

2008-06-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/36437
        * gfortran.dg/c_sizeof_1.f90: New.
        * gfortran.dg/c_sizeof_2.f90: New.

From-SVN: r136536
2008-06-07 20:53:07 +02:00
Joseph Myers
cd985f6672 MAINTAINERS (mt port): Remove.
* MAINTAINERS (mt port): Remove.
	(sco5, unixware, sco udk): Remove.
	(Kean Johnston): Add to Write After Approval.

fixincludes:
	* inclhack.def (AAB_svr4_replace_byteorder,
	AAB_ultrix_ansi_compat, AAB_ultrix_limits, AAB_ultrix_memory,
	libc1_G_va_list, libc1_ifdefd_memx, nested_motorola,
	ptx_sys_mc_param_h, sco_regset, sco_static_func, sco_utime,
	solaris_mutex_init_1, solaris_socket, solaris_unistd,
	solaris_widec, svr4_krnl, ultrix_atexit_param, ultrix_atof_param,
	ultrix_const3, ultrix_fix_fixproto, ultrix_ifdef, ultrix_locale,
	ultrix_math_ifdef, ultrix_nested_ioctl, ultrix_nested_svc,
	ultrix_stat, ultrix_static, ultrix_stdlib, ultrix_strings,
	ultrix_strings2, ultrix_sys_time, ultrix_unistd,
	unicosmk_restrict, uw7_byteorder_fix, windiss_math1,
	windiss_math2, windiss_valist): Remove.
	* fixincl.x: Regenerate.
	* mkfixinc.sh: (arm-semi-aof, hppa1.1-*-osf*, hppa1.1-*-bsd*,
	i370-*-openedition, i?86-*-moss*, i?86-*-uwin*,
	powerpc-*-eabiaix*): Remove.
	* tests/base/math.h: Update.
	* tests/base/pthread.h: Update.
	* tests/base/stdio.h: Update.
	* tests/base/stdlib.h: Update.
	* tests/base/string.h: Update.
	* tests/base/strings.h: Update.
	* tests/base/sys/file.h: Update.
	* tests/base/sys/limits.h: Update.
	* tests/base/sys/socket.h: Update.
	* tests/base/sys/stat.h: Update.
	* tests/base/sys/time.h: Update.
	* tests/base/testing.h: Update.
	* tests/base/unistd.h: Update.
	* tests/base/_G_config.h: Remove.
	* tests/base/arpa: Remove directory.
	* tests/base/fs: Remove directory.
	* tests/base/locale.h: Remove.
	* tests/base/machine: Remove directory.
	* tests/base/rpc/svc.h: Remove.
	* tests/base/sys/ioctl.h: Remove.
	* tests/base/sys/regset.h: Remove.
	* tests/base/sys/times.h: Remove.
	* tests/base/sys/utsname.h: Remove.
	* tests/base/widec.h: Remove.

gcc:
	* config.gcc (Obsolete configurations): Remove list of
	configurations.
	(Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
	*-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
	targets matched by those patterns.
	(strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
	m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
	alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
	arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
	hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
	i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
	i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
	i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
	i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
	mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
	powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
	powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
	strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
	vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
	i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
	Make code for Solaris 7 and greater unconditional for Solaris.
	(ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
	Remove --with-* handling.
	* config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
	(LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
	ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
	LINK_OS_WINDISS_SPEC): Remove.
	* config/rs6000/sysv4.opt (mwindiss): Remove.
	* configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
	* configure: Regenerate.
	* doc/cpp.texi: Don't mention BeOS.
	* doc/extend.texi (interrupt): Don't mention MS1.
	* doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
	m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
	alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
	i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
	powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
	Remove.
	* doc/invoke.texi (MT Options): Remove.
	(-mwindiss): Remove.
	(CRIS Options): Remove cris-axis-aout references.
	(HPPA Options): Don't mention hppa1.1-*-pro.
	* doc/md.texi: (MorphoTech family): Remove.
	* libgcc2.c: Don't handle UWIN.
	* config/alpha/t-unicosmk: Remove.
	* config/alpha/unicosmk.h: Remove.
	* config/arm/kaos-arm.h: Remove.
	* config/arm/kaos-strongarm.h: Remove.
	* config/arm/strongarm-coff.h: Remove.
	* config/arm/strongarm-elf.h: Remove.
	* config/arm/strongarm-pe.h: Remove.
	* config/arm/t-strongarm-pe: Remove.
	* config/arm/t-xscale-coff: Remove.
	* config/arm/t-xscale-elf: Remove.
	* config/arm/xscale-coff.h: Remove.
	* config/arm/xscale-elf.h: Remove.
	* config/chorus.h: Remove.
	* config/cris/aout.h: Remove.
	* config/cris/aout.opt: Remove.
	* config/cris/t-aout: Remove.
	* config/i386/beos-elf.h: Remove.
	* config/i386/kaos-i386.h: Remove.
	* config/i386/ptx4-i.h: Remove.
	* config/i386/sco5.h: Remove.
	* config/i386/sco5.opt: Remove.
	* config/i386/sysv4-cpp.h: Remove.
	* config/i386/sysv5.h: Remove.
	* config/i386/t-beos: Remove.
	* config/i386/t-sco5: Remove.
	* config/i386/t-uwin: Remove.
	* config/i386/uwin.asm: Remove.
	* config/i386/uwin.h: Remove.
	* config/kaos.h: Remove.
	* config/mips/windiss.h: Remove.
	* config/mt: Remove directory.
	* config/pa/pa-osf.h: Remove.
	* config/pa/pa-pro-end.h: Remove.
	* config/pa/t-pro: Remove.
	* config/ptx4.h: Remove.
	* config/rs6000/beos.h: Remove.
	* config/rs6000/kaos-ppc.h: Remove.
	* config/rs6000/t-beos: Remove.
	* config/rs6000/windiss.h: Remove.
	* config/sh/kaos-sh.h: Remove.
	* config/sol2-6.h: Remove.
	* config/sparc/sol26-sld.h: Remove.
	* config/sparc/sysv4-only.h: Remove.
	* config/vax/bsd.h: Remove.
	* config/vax/t-memfuncs: Remove.
	* config/vax/ultrix.h: Remove.
	* config/vax/vaxv.h: Remove.
	* config/windiss.h: Remove.

gcc/testsuite:
	* g++.dg/abi/arm_cxa_vec1.C: Don't handle xscale*-*-*.
	* g++.dg/eh/spbp.C: Don't handle *-*-solaris2.[56]*.
	* g++.dg/warn/miss-format-1.C: Don't handle Solaris before Solaris
	7.
	* gcc.c-torture/compile/981006-1.c: Don't handle xscale*-*-*,
	strongarm*-*-* and cris-*-aout*.
	* gcc.c-torture/execute/941014-1.x: Don't handle xscale*-*-* and
	strongarm*-*-*.
	* gcc.dg/20030909-1.c: Don't handle xscale*-*-* and
	strongarm*-*-*.
	* gcc.dg/20031108-1.c: Don't handle xscale*-*-* and
	strongarm*-*-*.
	* gcc.dg/20040813-1.c: Don't handle *-*-sysv5*.
	* gcc.dg/arm-asm.c: Don't handle strongarm*-*-* and xscale*-*-*.
	* gcc.dg/arm-scd42-1.c: Use target arm*-*-*.
	* gcc.dg/arm-scd42-3.c: Use target arm*-*-*.
	* gcc.dg/cpp/assert4.c: Don't handle BeOS.
	* gcc.dg/debug/pr35154.c: Don't handle *-*-sysv5*.
	* gcc.dg/intmax_t-1.c: Don't handle *-*-solaris2.5.1 and
	xscale*-*-elf*.
	* gcc.dg/pragma-align.c: Don't handle i?86-*-sco3.2v5*.
	* gcc.dg/pthread-init-2.c: Don't handle *-*-solaris2.5.1.
	* gcc.misc-tests/arm-isr.exp: Use target arm*-*-*.
	* gcc.target/powerpc/ppc-sdata-1.c: Don't handle powerpc-*-sysv*.
	* gcc.target/powerpc/ppc-sdata-2.c: Don't handle powerpc-*-sysv*.
	* gcc.target/powerpc/ppc-stackalign-1.c: Don't handle
	powerpc-*-sysv*.
	* gfortran.dg/debug/pr35154-stabs.f: Don't handle *-*-sysv5*.
	* lib/target-supports.exp: Don't handle strongarm*-*-elf,
	xscale*-*-elf and *-*-windiss.
	* obj-c++.dg/dwarf-2.mm: Don't handle *-*-solaris2.[56]*.
	* objc.dg/dwarf-1.m: Don't handle *-*-solaris2.[56]*.
	* objc.dg/dwarf-2.m: Don't handle *-*-solaris2.[56]*.
	* gcc.dg/mt-loopi1.c: Remove.

gnattools:
	* configure.ac (xscale*-wrs-vx*, xscale*-wrs-coff): Remove.
	* configure: Regenerate.

libcpp:
	* configure.ac (parisc*64*-*-*): Remove.
	* configure: Regenerate.

libffi:
	* configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
	powerpc-*-beos*): Remove.
	* configure: Regenerate.

libgcc:
	* config.host (strongarm*-*-*, ep9312*-*-*, xscale-*-*,
	parisc*-*-*, m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
	alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
	arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
	hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
	i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
	i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
	i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
	i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
	mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
	powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
	powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
	strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
	vax-*-ultrix*, xscale-*-elf, xscale-*-coff): Remove.

libjava:
	* configure.host (strongarm*-elf, xscale*-elf): Remove.

libstdc++-v3:
	* configure.host (xscale, ep9312, m680[246]0, solaris2.5,
	solaris2.5.[0-9], solaris2.6, windiss*): Remove.
	* crossconfig.m4 (*-solaris2.5, *-solaris2.6, *-windiss*): Remove.
	* configure: Regenerate.
	* config/os/solaris/solaris2.5: Remove directory.
	* config/os/solaris/solaris2.6: Remove directory.
	* config/os/windiss: Remove directory.

From-SVN: r136534
2008-06-07 19:00:15 +01:00
Samuel Tardieu
4b92fd3cc9 sem_res.adb (Large_Storage_Type): A type is large if it requires as many bits as Positive to store its values and...
gcc/ada/
	* sem_res.adb (Large_Storage_Type): A type is large if it
	requires as many bits as Positive to store its values and its
	bounds are known at compile time.
	* sem_ch13.adb (Minimum_Size): Note that this function returns
	0 if the size is not known at compile time.

    gcc/testsuite/
	* gnat.dg/specs/oversize.ads: New.

From-SVN: r136532
2008-06-07 16:10:50 +00:00
Paolo Carlini
e32764576e re PR c++/35327 (ICE with invalid constructor)
/cp
2008-06-07  Paolo Carlini  <paolo.carlini@oracle.com>

        PR c++/35327
        * decl.c (grokdeclarator): In case of wrong return type return
	immediately error_mark_node.

/testsuite
2008-06-07  Paolo Carlini  <paolo.carlini@oracle.com>

        PR c++/35327
        * g++.dg/parse/crash41.C: New.

From-SVN: r136518
2008-06-07 08:06:46 +00:00
Olivier Hainque
968c8001a2 Move Ada specific log to the Ada ChangeLog file.
From-SVN: r136517
2008-06-07 07:12:05 +00:00
GCC Administrator
bbb9e7b98e Daily bump.
From-SVN: r136513
2008-06-07 00:17:26 +00:00
Nicolas Setton
081a52ed52 ada-tree.h (DECL_PARALLEL_TYPE): New language specific attribute...
2008-06-06  Nicolas Setton  <setton@adacore.com>
            Olivier Hainque  <hainque@adacore.com>

        * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
        attribute, parallel descriptive type attached to another type
        for debug info generation purposes.
        * utils.c (add_parallel_type): New function, register parallel
        type to be attached to a type.
        (get_parallel_type): New function, fetch a registered parallel
        type, if any.
        (rest_of_record_type_compilation): Register the parallel type we
        make for variable size records.
        * gigi.h (add_parallel_type, get_parallel_type): Declare.
        * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
        parallel debug types we make.
        * trans.c (extract_encoding, decode_name): New functions.
        (gigi): If the DWARF attribute extensions are available, setup
        to use them.
        * lang.opt: Register language specific processing request
        for -gdwarf+.
        * misc.c (gnat_dwarf_extensions): New global variable.  How much
        do we want of our DWARF extensions. 0 by default.
        (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
        (gnat_post_options): Map gnat_dwarf_extensions to the common
        use_gnu_debug_info_extensions for later processing.


Co-Authored-By: Olivier Hainque <hainque@adacore.com>

From-SVN: r136506
2008-06-06 21:36:28 +00:00
Andreas Tobler
e919209b4e re PR bootstrap/36452 (Broken bootstrap while building libgomp.)
2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>

	PR bootstrap/36452
	* loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
	(GOMP_loop_ull_dynamic_start): Likewise.
	(GOMP_loop_ull_guided_start): Likewise.
	(GOMP_loop_ull_ordered_static_start): Likewise.
	(GOMP_loop_ull_ordered_dynamic_start): Likewise.
	(GOMP_loop_ull_ordered_guided_start): Likewise.

From-SVN: r136503
2008-06-06 22:30:31 +02:00
Benjamin Kosnik
e198f14cbd using.xml: Outline exception topics.
2008-06-06  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/xml/manual/using.xml: Outline exception topics.

	* include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp: Format.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
	policy_access_fn_imps.hpp: Same.
	* include/ext/pb_ds/priority_queue.hpp: Same.
	* include/ext/throw_allocator.h: Same.

	* include/ext/pb_ds/tag_and_trait.hpp (string_tag): New tag.
	(sequence_tag): New tag. Doxygen markup fixes.

	* testsuite/lib/libstdc++.exp: Remove twister_ran_gen.cc source file.

	* testsuite/performance/ext/pb_ds/text_find_timing.cc: Fix
	comment typo, include paths, format.
	* testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	hash_random_int_erase_mem_usage.cc: Same.
	* testsuite/performance/ext/pb_ds/
	random_int_subscript_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	priority_queue_text_push_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/tree_split_join_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/random_int_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp
	* testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp
	* testsuite/performance/ext/pb_ds/
	priority_queue_random_int_push_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp
	* testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	priority_queue_text_push_pop_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	priority_queue_text_join_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	priority_queue_random_int_push_pop_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	random_int_subscript_insert_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp
	* testsuite/performance/ext/pb_ds/
	priority_queue_text_pop_mem_usage.cc: Same.
	* testsuite/performance/ext/pb_ds/
	hash_zlob_random_int_find_timing.cc: Same.
	* testsuite/ext/pb_ds/regression/hash_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/trie_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/tree_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc: Same.
	* testsuite/util/regression/trait/priority_queue/trait.hpp: Same.
	* testsuite/util/regression/trait/erase_if_fn.hpp: Same.
	* testsuite/util/regression/trait/assoc/native_type_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/node_update_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/get_set_load_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/resize_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/type_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/to_string.hpp: Same.
	* testsuite/util/regression/basic_type.hpp: Same.
	* testsuite/util/common_type/priority_queue/string_form.hpp: Same.
	* testsuite/util/common_type/priority_queue/detail/
	ds_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	resize_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	trigger_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	comb_hash_fn_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/ds_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	size_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	probe_fn_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	list_update_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	store_hash_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/native_set.hpp: Same.
	* testsuite/util/io/prog_bar.cc: Same.

	* testsuite/util/regression/rand/io: Remove.
	* testsuite/util/regression/rand/io/priority_queue: Same.
	* testsuite/util/regression/rand/io/assoc: Same.
	* testsuite/util/regression/rand/io/priority_queue/
	xml_formatter.hpp: Consolidate this...
	* testsuite/util/regression/rand/io/assoc/xml_formatter.hpp: ...this
	* testsuite/util/regression/rand/io/xml_formatter.hpp: ... and this
	* testsuite/util/regression/rand/xml_formatter.hpp: ...here.

	* testsuite/util/regression/rand/priority_queue/
	container_rand_regression_test.hpp:To ...
	container_rand_regression_test.h: ... this.
	* testsuite/util/regression/rand/priority_queue/detail/*.hpp:To ...
	* testsuite/util/regression/rand/priority_queue/
	container_rand_regression_test.tcc: ... this.
	PB_DS_THROW_IF_FAIL: Change to _GLIBCXX_THROW_IF, adjust predicate.
	PB_DS_SET_DESTRUCT_PRINT: Fold inline.
	PB_DS_CANCEL_DESTRUCT_PRINT: Fold inline.
	* testsuite/util/regression/rand/priority_queue/
	rand_regression_test.hpp: Adjust includes.

	* testsuite/util/regression/rand/assoc/
	container_rand_regression_test.hpp: To ...
	* testsuite/util/regression/rand/assoc/
	container_rand_regression_test.h: ... this.
	* testsuite/util/regression/rand/assoc/detail/*.hpp:To ...
	* testsuite/util/regression/rand/assoc/
	container_rand_regression_test.tcc: ...this.
	* testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Adjust
	includes.

	* testsuite/util/regression/priority_queue: Remove.
	* testsuite/util/regression/assoc: Remove.
	* testsuite/util/regression/priority_queue/
	common_type.hpp: Consolidate this...
	* testsuite/util/regression/assoc/common_type.hpp: ... and this
	* testsuite/util/regression/common_type.hpp: ...here.

	* testsuite/util/rng: Remove.
	* testsuite/util/rng/twister_rand_gen.cc: Consolidate...
	* testsuite/util/rng/twister_rand_gen.hpp: ... and this
	* testsuite/util/testsuite_rng.h: ...here.

	* testsuite/util/native_type/priority_queue: Remove.
	* testsuite/util/native_type/priority_queue/
	native_priority_queue.hpp: To...
	* testsuite/util/native_type/native_priority_queue.hpp: ...here.

	* testsuite/util/native_type/assoc: Remove.
	* testsuite/util/native_type/assoc/native_multimap.hpp: To...
	* testsuite/util/native_type/assoc/native_tree_tag.hpp: To...
	* testsuite/util/native_type/assoc/native_hash_multimap.hpp: To...
	* testsuite/util/native_type/assoc/native_set.hpp: To...
	* testsuite/util/native_type/assoc/native_map.hpp: To...
	* testsuite/util/native_type/assoc/native_hash_set.hpp: To...
	* testsuite/util/native_type/assoc/native_hash_tag.hpp: To...
	* testsuite/util/native_type/assoc/native_hash_map.hpp: To...
	* testsuite/util/native_type/native_multimap.hpp: ...here.
	* testsuite/util/native_type/native_tree_tag.hpp: ...here.
	* testsuite/util/native_type/native_hash_multimap.hpp: ...here.
	* testsuite/util/native_type/native_set.hpp: ...here.
	* testsuite/util/native_type/native_map.hpp: ...here.
	* testsuite/util/native_type/native_hash_set.hpp: ...here.
	* testsuite/util/native_type/native_hash_tag.hpp: ...here.
	* testsuite/util/native_type/native_hash_map.hpp: ...here.

	* testsuite/util/common_type/priority_queue/common_type.hpp:
	Make include guard distinct.
	* testsuite/util/common_type/assoc/common_type.hpp: Same.

From-SVN: r136498
2008-06-06 19:38:03 +00:00
Benjamin Kosnik
2e3f9c21d5 using.xml: Outline exception topics.
2008-06-06  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/xml/manual/using.xml: Outline exception topics.

	* include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp: Format.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
	policy_access_fn_imps.hpp: Same.
	* include/ext/pb_ds/priority_queue.hpp: Same.
	* include/ext/throw_allocator.h: Same.

	* include/ext/pb_ds/tag_and_trait.hpp (string_tag): New tag.
	(sequence_tag): New tag. Doxygen markup fixes.

	* testsuite/lib/libstdc++.exp: Remove twister_ran_gen.cc source file.

	* testsuite/performance/ext/pb_ds/text_find_timing.cc: Fix
	comment typo, include paths, format.
	* testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	hash_random_int_erase_mem_usage.cc: Same.
	* testsuite/performance/ext/pb_ds/
	random_int_subscript_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	priority_queue_text_push_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/tree_split_join_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/random_int_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp
	* testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp
	* testsuite/performance/ext/pb_ds/
	priority_queue_random_int_push_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp
	* testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	priority_queue_text_push_pop_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	priority_queue_text_join_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	priority_queue_random_int_push_pop_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/
	random_int_subscript_insert_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp
	* testsuite/performance/ext/pb_ds/
	priority_queue_text_pop_mem_usage.cc: Same.
	* testsuite/performance/ext/pb_ds/
	hash_zlob_random_int_find_timing.cc: Same.
	* testsuite/ext/pb_ds/regression/hash_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/trie_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/tree_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc: Same.
	* testsuite/util/regression/trait/priority_queue/trait.hpp: Same.
	* testsuite/util/regression/trait/erase_if_fn.hpp: Same.
	* testsuite/util/regression/trait/assoc/native_type_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/node_update_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/get_set_load_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/resize_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/type_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/to_string.hpp: Same.
	* testsuite/util/regression/basic_type.hpp: Same.
	* testsuite/util/common_type/priority_queue/string_form.hpp: Same.
	* testsuite/util/common_type/priority_queue/detail/
	ds_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	resize_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	trigger_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	comb_hash_fn_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/ds_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	size_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	probe_fn_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	list_update_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/
	store_hash_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/native_set.hpp: Same.
	* testsuite/util/io/prog_bar.cc: Same.

	* testsuite/util/regression/rand/io: Remove.
	* testsuite/util/regression/rand/io/priority_queue: Same.
	* testsuite/util/regression/rand/io/assoc: Same.
	* testsuite/util/regression/rand/io/priority_queue/
	xml_formatter.hpp: Consolidate this...
	* testsuite/util/regression/rand/io/assoc/xml_formatter.hpp: ...this
	* testsuite/util/regression/rand/io/xml_formatter.hpp: ... and this
	* testsuite/util/regression/rand/xml_formatter.hpp: ...here.

	* testsuite/util/regression/rand/priority_queue/
	container_rand_regression_test.hpp:To ...
	container_rand_regression_test.h: ... this.
	* testsuite/util/regression/rand/priority_queue/detail/*.hpp:To ...
	* testsuite/util/regression/rand/priority_queue/
	container_rand_regression_test.tcc: ... this.
	PB_DS_THROW_IF_FAIL: Change to _GLIBCXX_THROW_IF, adjust predicate.
	PB_DS_SET_DESTRUCT_PRINT: Fold inline.
	PB_DS_CANCEL_DESTRUCT_PRINT: Fold inline.
	* testsuite/util/regression/rand/priority_queue/
	rand_regression_test.hpp: Adjust includes.

	* testsuite/util/regression/rand/assoc/
	container_rand_regression_test.hpp: To ...
	* testsuite/util/regression/rand/assoc/
	container_rand_regression_test.h: ... this.
	* testsuite/util/regression/rand/assoc/detail/*.hpp:To ...
	* testsuite/util/regression/rand/assoc/
	container_rand_regression_test.tcc: ...this.
	* testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Adjust
	includes.

	* testsuite/util/regression/priority_queue: Remove.
	* testsuite/util/regression/assoc: Remove.
	* testsuite/util/regression/priority_queue/
	common_type.hpp: Consolidate this...
	* testsuite/util/regression/assoc/common_type.hpp: ... and this
	* testsuite/util/regression/common_type.hpp: ...here.

	* testsuite/util/rng: Remove.
	* testsuite/util/rng/twister_rand_gen.cc: Consolidate...
	* testsuite/util/rng/twister_rand_gen.hpp: ... and this
	* testsuite/util/testsuite_rng.h: ...here.

	* testsuite/util/native_type/priority_queue: Remove.
	* testsuite/util/native_type/priority_queue/
	native_priority_queue.hpp: To...
	* testsuite/util/native_type/native_priority_queue.hpp: ...here.

	* testsuite/util/native_type/assoc: Remove.
	* testsuite/util/native_type/assoc/native_multimap.hpp: To...
	* testsuite/util/native_type/assoc/native_tree_tag.hpp: To...
	* testsuite/util/native_type/assoc/native_hash_multimap.hpp: To...
	* testsuite/util/native_type/assoc/native_set.hpp: To...
	* testsuite/util/native_type/assoc/native_map.hpp: To...
	* testsuite/util/native_type/assoc/native_hash_set.hpp: To...
	* testsuite/util/native_type/assoc/native_hash_tag.hpp: To...
	* testsuite/util/native_type/assoc/native_hash_map.hpp: To...
	* testsuite/util/native_type/native_multimap.hpp: ...here.
	* testsuite/util/native_type/native_tree_tag.hpp: ...here.
	* testsuite/util/native_type/native_hash_multimap.hpp: ...here.
	* testsuite/util/native_type/native_set.hpp: ...here.
	* testsuite/util/native_type/native_map.hpp: ...here.
	* testsuite/util/native_type/native_hash_set.hpp: ...here.
	* testsuite/util/native_type/native_hash_tag.hpp: ...here.
	* testsuite/util/native_type/native_hash_map.hpp: ...here.

	* testsuite/util/common_type/priority_queue/common_type.hpp:
	Make include guard distinct.

From-SVN: r136497
2008-06-06 19:32:43 +00:00
Joseph Myers
bffc9d793f configure.ac: Do not check for gconv.h.
* configure.ac: Do not check for gconv.h.
	* crossconfig.m4 (GLIBCXX_CROSSCONFIG): Do not test for gconv.h or
	gconf.h.  For glibc and uClibc systems, define
	_GLIBCXX_USE_RANDOM_TR1 and HAVE_MMAP and use AC_LC_MESSAGES and
	AM_ICONV.
	* configure, config.h.in: Regenerate.

From-SVN: r136494
2008-06-06 20:11:26 +01:00
Tobias Burnus
41870ac553 intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
2008-06-06  Tobias Burnus  <burnus@net-b.de>

       * intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.

From-SVN: r136491
2008-06-06 19:19:02 +02:00
Uros Bizjak
88057dc868 re PR rtl-optimization/36438 (gcc ICE compiling code with mmx builtin)
PR rtl-optimization/36438
	* cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
	for vector shifts with constant scalar shift operands.

From-SVN: r136486
2008-06-06 17:04:51 +02:00
Joseph Myers
8b34d6c2bf all.cc, [...]: Only include <ext/codecvt_specializations.h> and <ext/enc_filebuf.h> if...
* testsuite/17_intro/headers/all.cc,
	testsuite/17_intro/headers/all_c++200x_compatibility.cc,
	testsuite/17_intro/headers/all_pedantic_errors.cc,
	testsuite/ext/headers.cc: Only include
	<ext/codecvt_specializations.h> and <ext/enc_filebuf.h> if
	_GLIBCXX_HAVE_ICONV.

From-SVN: r136485
2008-06-06 16:03:52 +01:00
Sandip Matte
d0ae31b09e invoke.texi: Document -march=xlr.
gcc/
2008-06-05  Sandip Matte  <sandip@rmicorp.com>

	* doc/invoke.texi: Document -march=xlr.
	* config/mips/xlr.md: New file.
	* config/mips/mips.md: Include it.
	(cpu): Add "xlr".
	* config/mips/mips.h (PROCESSOR_XLR): New processor_type.
	* config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
	(mips_rtx_cost_data): Likewise.

From-SVN: r136438
2008-06-06 14:24:57 +00:00
Nathan Froyd
619fe0646e rs6000.c (rs6000_mode_dependent_address): Remove PRE_INC and PRE_DEC cases.
* config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
	PRE_INC and PRE_DEC cases.

From-SVN: r136437
2008-06-06 13:46:45 +00:00
Jakub Jelinek
c6eb958c63 re PR rtl-optimization/36419 (Wrong unwind info with -Os -fasynchronous-unwind-tables)
PR rtl-optimization/36419
	* except.c (expand_resx_expr): Call do_pending_stack_adjust () before
	the emitting jump insn.

From-SVN: r136435
2008-06-06 15:24:45 +02:00
Jakub Jelinek
673390625d re PR target/36362 (ICE in simplify_subreg)
PR target/36362
	* gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
	is not bool, boolify the whole *expr_p and convert to the desired type.

	* gcc.c-torture/execute/20080529-1.c: New test.

From-SVN: r136434
2008-06-06 15:23:04 +02:00
Jakub Jelinek
a68ab35173 c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
	200805.
	* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
	Add omp_private_outer_ref hook, add another argument to
	omp_clause_default_ctor hook.
	* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
	(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
	(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
	hook_tree_tree_tree_tree_null.
	(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
	LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
	* hooks.c (hook_tree_tree_tree_tree_null): New function.
	* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
	* tree.def (OMP_TASK): New tree code.
	* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
	OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
	OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
	OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
	OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
	OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
	OMP_CLAUSE_COLLAPSE_EXPR): Define.
	(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
	(OMP_DIRECTIVE_P): Add OMP_TASK.
	(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
	(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
	* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
	and OMP_CLAUSE_UNTIED entries.
	(omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
	num_ops to 2.
	(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
	Walk OMP_CLAUSE_LASTPRIVATE_STMT.
	* tree-pretty-print.c (dump_omp_clause): Handle
	OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
	OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
	(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
	* c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
	warning about unsigned iterators.  Change decl/init/cond/incr
	arguments to TREE_VECs, check arguments for all collapsed loops.
	(c_finish_omp_taskwait): New function.
	(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
	ws_clauses.
	* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
	default_function_array_conversion on init.  Add par_clauses argument.
	If decl is present in parallel's lastprivate clause, change it to
	shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
	Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
	collapse count in clauses.
	(c_parser_omp_for, c_parser_omp_parallel): Adjust
	c_parser_omp_for_loop callers.
	(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
	(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
	(c_parser_omp_clause_name): Handle collapse and untied clauses.
	(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
	functions.
	(c_parser_omp_clause_schedule): Handle schedule(auto).
	Include correct location in the error message.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
	and PRAGMA_OMP_CLAUSE_UNTIED.
	(OMP_TASK_CLAUSE_MASK): Define.
	(c_parser_omp_task, c_parser_omp_taskwait): New functions.
	(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
	OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
	OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
	Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
	OMP_CLAUSE_DECL.
	(conver_nonlocal_reference, convert_local_reference,
	convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
	OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
	(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
	* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
	* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
	* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
	(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
	* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
	(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
	OMP_CLAUSE_UNTIED.
	* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
	* c-common.h (c_finish_omp_taskwait): New prototype.
	* gimple-low.c (lower_stmt): Handle OMP_TASK.
	* tree-parloops.c (create_parallel_loop): Create 1 entry
	vectors for OMP_FOR_{INIT,COND,INCR}.
	* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
	(make_edges): Handle OMP_TASK.
	* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
	* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
	* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
	BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
	* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
	BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
	BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
	BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
	* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
	handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
	original iterator is present in lastprivate clause or if
	collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
	OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
	(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
	(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
	(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
	if it is set, lookup var in outer contexts too.  Handle
	OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
	to be implicitly determined firstprivate for task regions.
	(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
	if it is set, lookup var in outer contexts too.  Set
	OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
	Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
	OMP_CLAUSE_UNTIED.  Take region_type as last argument
	instead of in_parallel and in_combined_parallel.
	(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
	Adjust callers.
	(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
	GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause
	langhook.
	(new_omp_context): Set default_kind to
	OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
	(omp_region_type): New enum.
	(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
	fields, add region_type.
	(new_omp_context): Take region_type as argument instead of is_parallel
	and is_combined_parallel.
	(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
	omp_is_private, omp_check_private): Adjust ctx->is_parallel and
	ctx->is_combined_parallel checks.
	(gimplify_omp_task): New function.
	(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
	OMP_CLAUSE_UNTIED.
	* omp-low.c (extract_omp_for_data): Use schedule(static)
	for schedule(auto).  Handle pointer and unsigned iterators.
	Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
	Add loops argument.  Extract data for collapsed OMP_FOR loops.
	(expand_parallel_call): Assert sched_kind isn't auto,
	map runtime schedule to index 3.
	(struct omp_for_data_loop): New type.
	(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
	Add loop, loops, collapse and iter_type fields.
	(workshare_safe_to_combine_p): Disallow combined for if
	iter_type is unsigned long long.  Don't combine collapse > 1 loops
	unless all bounds and steps are constant.  Adjust extract_omp_for_data
	caller.
	(expand_omp_for_generic): Handle pointer, unsigned and long long
	iterators.  Handle collapsed OMP_FOR loops.  Adjust
	for struct omp_for_data changes.  If libgomp function doesn't return
	boolean_type_node, add comparison of the return value with 0.
	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
	pointer, unsigned and long long iterators.  Adjust for struct
	omp_for_data changes.
	(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
	to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
	unsigned long long.  Allocate loops array, pass it to
	extract_omp_for_data.  For collapse > 1 loops use always
	expand_omp_for_generic.
	(omp_context): Add sfield_map and srecord_type fields.
	(is_task_ctx, lookup_sfield): New functions.
	(use_pointer_for_field): Use is_task_ctx helper.  Change first
	argument's type from const_tree to tree.  Clarify comment.
	In OMP_TASK disallow copy-in/out sharing.
	(build_sender_ref): Call lookup_sfield instead of lookup_field.
	(install_var_field): Add mask argument.  Populate both record_type
	and srecord_type if needed.
	(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
	in srecord_type.
	(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
	and DECL_FIELD_OFFSET.
	(scan_sharing_clauses): Adjust install_var_field callers.  For
	firstprivate clauses on explicit tasks allocate the var by value in
	record_type unconditionally, rather than by reference.
	Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
	Use is_taskreg_ctx instead of is_parallel_ctx.
	Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
	(create_omp_child_function_name): Add task_copy argument, use
	*_omp_cpyfn* names if it is true.
	(create_omp_child_function): Add task_copy argument, if true create
	*_omp_cpyfn* helper function.
	(scan_omp_parallel): Adjust create_omp_child_function callers.
	Rename parallel_nesting_level to taskreg_nesting_level.
	(scan_omp_task): New function.
	(lower_rec_input_clauses): Don't run constructors for firstprivate
	explicit task vars which are initialized by *_omp_cpyfn*.  
	Pass outer var ref to omp_clause_default_ctor hook if
	OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
	Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
	OMP_CLAUSE_REDUCTION_INIT.
	(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
	avoid duplicate setting of fields.  Handle
	OMP_CLAUSE_PRIVATE_OUTER_REF.
	(lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
	copy-out if TREE_READONLY, only copy-in.
	(expand_task_copyfn): New function.
	(expand_task_call): New function.
	(struct omp_taskcopy_context): New type.
	(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
	New functions.
	(lower_omp_parallel): Rename to...
	(lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
	Call create_task_copyfn if srecord_type is needed.  Adjust
	sender_decl type.
	(task_shared_vars): New variable.
	(check_omp_nesting_restrictions): Warn if work-sharing,
	barrier, master or ordered region is closely nested inside OMP_TASK.
	Add warnings for barrier if closely nested inside of work-sharing,
	ordered, or master region.
	(scan_omp_1): Call check_omp_nesting_restrictions even for
	GOMP_barrier calls.  Rename parallel_nesting_level to
	taskreg_nesting_level.  Handle OMP_TASK.
	(lower_lastprivate_clauses): Even if some lastprivate is found on a
	work-sharing construct, continue looking for them on parent parallel
	construct.
	(lower_omp_for_lastprivate): Add lastprivate clauses
	to the beginning of dlist rather than end.  Adjust for struct
	omp_for_data changes.
	(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
	not after it.  Handle collapsed OMP_FOR loops, adjust for
	OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
	caller.
	(get_ws_args_for): Adjust extract_omp_for_data caller.
	(scan_omp_for): Handle collapsed OMP_FOR
	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
	(lower_omp_single_simple): If libgomp function doesn't return
	boolean_type_node, add comparison of the return value with 0.
	(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
	(parallel_nesting_level): Rename to...
	(taskreg_nesting_level): ... this.
	(is_taskreg_ctx): New function.
	(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
	of is_parallel_ctx.
	(execute_lower_omp): Rename parallel_nesting_level to
	taskreg_nesting_level.
	(expand_omp_parallel): Rename to...
	(expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
	Call omp_task_call for OMP_TASK regions.
	(expand_omp): Adjust caller, handle OMP_TASK.
	(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.

	* bitmap.c (bitmap_default_obstack_depth): New variable.
	(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
	if argument is NULL and bitmap_default_obstack is already initialized.
	* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
	at the end.
	* matrix-reorg.c (matrix_reorg): Likewise.
cp/
	* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
	dependent_omp_for_p, begin_omp_task, finish_omp_task,
	finish_omp_taskwait): New prototypes.
	(cxx_omp_clause_default_ctor): Add outer argument.
	(finish_omp_for): Add new clauses argument.
	* cp-gimplify.c (cxx_omp_finish_clause): New function.
	(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
	(cxx_omp_clause_default_ctor): Add outer argument.
	(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
	* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
	* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
	Add par_clauses argument.  If decl is present in parallel's
	lastprivate clause, change that clause to shared and add
	a lastprivate clause for decl to OMP_FOR_CLAUSES.
	Fix wording of error messages.  Adjust finish_omp_for caller.
	Add clauses argument.  Parse loops with random access iterators.
	(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
	functions.
	(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
	cp_parser_omp_for_loop callers.
	(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
	functions.
	(cp_parser_omp_clause_name): Handle collapse and untied
	clauses.
	(cp_parser_omp_clause_schedule): Handle auto schedule.
	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
	and PRAGMA_OMP_CLAUSE_UNTIED.
	(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
	(OMP_TASK_CLAUSE_MASK): Define.
	(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
	(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
	(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
	PRAGMA_OMP_TASKWAIT.
	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
	OMP_CLAUSE_UNTIED.  Handle OMP_CLAUSE_LASTPRIVATE_STMT.
	(tsubst_omp_for_iterator): New function.
	(dependent_omp_for_p): New function.
	(tsubst_expr) <case OMP_FOR>: Use it.  Handle collapsed OMP_FOR
	loops.  Adjust finish_omp_for caller.  Handle loops with random
	access iterators.  Adjust for OMP_FOR_{INIT,COND,INCR} changes.
	(tsubst_expr): Handle OMP_TASK.
	* semantics.c (cxx_omp_create_clause_info): New function.
	(finish_omp_clauses): Call it.  Handle OMP_CLAUSE_UNTIED and
	OMP_CLAUSE_COLLAPSE.
	(cxx_omp_predetermined_sharing): Removed.
	* semantics.c (finish_omp_for): Allow pointer iterators.  Use
	handle_omp_for_class_iterator and dependent_omp_for_p.  Handle
	collapsed for loops.  Adjust c_finish_omp_for caller.  Add new
	clauses argument.  Fix check for type dependent cond or incr.
	Set OMP_FOR_CLAUSES to clauses.  Use cp_convert instead of
	fold_convert to convert incr amount to difference_type.  Only
	fold if not in template.  If decl is mentioned in lastprivate
	clause, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle loops with random
	access iterators.  Adjust for OMP_FOR_{INIT,COND,INCR}
	changes.
	(finish_omp_threadprivate): Allow static class members of the
	current class.
	(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
	finish_omp_taskwait): New functions.

	* parser.c (cp_parser_binary_expression): Add prec argument.
	(cp_parser_assignment_expression): Adjust caller.
	* cp-tree.h (outer_curly_brace_block): New prototype.
	* decl.c (outer_curly_brace_block): No longer static.
fortran/
	* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
	* parse.c (next_free): Allow tab after !$omp.
	(decode_omp_directive): Handle !$omp task, !$omp taskwait
	and !$omp end task.
	(case_executable): Add ST_OMP_TASKWAIT.
	(case_exec_markers): Add ST_OMP_TASK.
	(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
	ST_OMP_TASKWAIT.
	(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
	* gfortran.h (gfc_find_sym_in_expr): New prototype.
	(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
	(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
	OMP_DEFAULT_FIRSTPRIVATE to default_sharing.  Add collapse and
	untied fields.
	(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
	* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
	LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
	* trans.h (gfc_omp_clause_default_ctor): Add another argument.
	(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
	gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
	* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
	BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
	BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
	(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
	than boolean_type_node.
	* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
	EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
	untied and collapse clauses.
	(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
	* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
	EXEC_OMP_TASKWAIT.
	* st.c (gfc_free_statement): Likewise.
	* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
	(find_sym_in_expr): Rename to...
	(gfc_find_sym_in_expr): ... this.  No longer static.
	(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
	* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
	prototypes.
	* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
	firstprivate, lastprivate, reduction, copyprivate and copyin
	clauses.
	(omp_current_do_code): Made static.
	(omp_current_do_collapse): New variable.
	(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
	clear omp_current_do_code and omp_current_do_collapse on return.
	(gfc_resolve_do_iterator): Handle collapsed do loops.
	(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
	(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
	(gfc_match_omp_clauses): Handle default (firstprivate),
	schedule (auto), untied and collapse (n) clauses.
	(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
	(OMP_TASK_CLAUSES): Define.
	(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
	* trans-openmp.c (gfc_omp_private_outer_ref): New function.
	(gfc_omp_clause_default_ctor): Add outer argument.  For allocatable
	arrays allocate them with the bounds of the outer var if outer
	var is allocated.
	(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
	gfc_omp_clause_dtor): New functions.
	(gfc_trans_omp_array_reduction): If decl is allocatable array,
	allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
	and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
	(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
	for assumed-size arrays.
	(gfc_trans_omp_do): Add par_clauses argument.  If dovar is
	present in lastprivate clause and do loop isn't simple,
	set OMP_CLAUSE_LASTPRIVATE_STMT.  If dovar is present in
	parallel's lastprivate clause, change it to shared and add
	lastprivate clause to OMP_FOR_CLAUSES.  Handle collapsed do loops.
	(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
	(gfc_trans_omp_parallel_do): Likewise.  Move collapse clause to
	OMP_FOR from OMP_PARALLEL.
	(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
	OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
	(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
	(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
	EXEC_OMP_TASKWAIT.
gcc/testsuite/
	* gcc.dg/gomp/collapse-1.c: New test.
	* gcc.dg/gomp/nesting-1.c: New test.
	* g++.dg/gomp/task-1.C: New test.
	* g++.dg/gomp/predetermined-1.C: New test.
	* g++.dg/gomp/tls-4.C: New test.
	* gfortran.dg/gomp/collapse1.f90: New test.
	* gfortran.dg/gomp/sharing-3.f90: New test.
	* gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
	* g++.dg/gomp/pr27499.C (foo): Likewise.
	* g++.dg/gomp/for-16.C (foo): Likewise.
	* g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
	* g++.dg/gomp/pr34607.C: Adjust dg-error location.
	* g++.dg/gomp/for-16.C (foo): Add a new dg-error.
	* gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
	* gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
	* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
	* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
	* gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
	* gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
	about allocatable array.
	* gfortran.dg/gomp/reduction1.f90: Likewise.
libgomp/
	* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
	Substitute also OMP_*LOCK_25*.
	* configure: Regenerated.
	* config.h.in: Regenerated.
	* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
	ptrlock.c and task.c.
	* Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.
	* task.c: New file.
	* loop_ull.c: New file.
	* iter_ull.c: New file.
	* libgomp.h: Include ptrlock.h.
	(enum gomp_task_kind): New type.
	(struct gomp_team): Add task_lock, task_queue, task_count,
	task_running_count, single_count fields.  Add
	work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
	Remove work_share_lock, generation_mask,
	oldest_live_gen, num_live_gen and init_work_shares fields, add
	work work_share_list_alloc, work_share_list_free and work_share_chunk
	fields.  Change work_shares from pointer to pointers into an array.
	Change ordered_release field into gomp_sem_t ** from flexible array
	member.  Add implicit_task and initial_work_shares fields.
	Move close to the end of the struct.
	(struct gomp_team_state): Add single_count, last_work_share,
	active_level and level fields, remove work_share_generation.
	(gomp_barrier_handle_tasks): New prototype.
	(gomp_finish_task): New inline function.
	(struct gomp_work_share): Move chunk_size, end, incr into
	transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
	next_ll fields.  Reshuffle fields.  Add next_alloc,
	next_ws, next_free and inline_ordered_team_ids fields, change
	ordered_team_ids into pointer from flexible array member.
	Add mode field.  Put lock and next into a different cache line
	from most of the write-once fields.
	(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
	gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
	gomp_iter_ull_guided_next): New prototypes.
	(gomp_new_icv): New prototype.
	(struct gomp_thread): Add thread_pool and task fields.
	(struct gomp_thread_pool): New type.
	(gomp_new_team): New prototype.
	(gomp_team_start): Change type of last argument.
	(gomp_new_work_share): Removed.
	(gomp_init_work_share, gomp_fini_work_share): New prototypes.
	(gomp_work_share_init_done): New static inline.
	(gomp_throttled_spin_count_var, gomp_available_cpus,
	gomp_managed_threads): New extern decls.
	(gomp_init_task): New prototype.
	(gomp_spin_count_var): New extern var decl.
	(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
	or no alias support, or if not PIC.
	(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
	gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
	gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
	gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
	gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
	gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
	gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
	gomp_test_nest_lock_25): New prototypes.
	(omp_lock_symver, strong_alias): Define.
	(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
	decls.
	(gomp_end_task): New.
	(struct gomp_task_icv, gomp_global_icv): New.
	(gomp_thread_limit_var, gomp_max_active_levels_var): New.
	(struct gomp_task): New.
	(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
	gomp_run_sched_var, gomp_run_sched_chunk): Remove.
	(gomp_icv): New.
	(gomp_schedule_type): Reorder enum to match
	omp_sched_t.
	* team.c (struct gomp_thread_start_data): Add thread_pool and task
	fields.
	(gomp_thread_start): Add gomp_team_barrier_wait call.
	For non-nested case remove clearing of docked thread thr fields.
	Use pool fields instead of global gomp_* variables.  Use
	gomp_barrier_wait_last when needed.  Initialize ts.active_level.
	Create tasks for each member thread.
	(free_team): Only destroy team barrier, task_lock here and free it.
	(gomp_free_thread): Free last_team if non-NULL.
	(gomp_team_end): Call gomp_team_barrier_wait instead of
	gomp_barrier_wait.  For nested case call one extra
	gomp_barrier_wait.  Move here some destruction from free_team.
	Call free_team on pool->last_team if any, rather than freeing
	current team.  Destroy work_share_list_free_lock ifndef
	HAVE_SYNC_BUILTINS.
	(gomp_new_icv): New function.
	(gomp_threads, gomp_threads_size, gomp_threads_used,
	gomp_threads_dock): Removed.
	(gomp_thread_destructor): New variable.
	(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
	functions.
	(gomp_team_start): Create new pool if current thread doesn't have
	one.  Use pool fields instead of global gomp_* variables. 
	Initialize thread_pool field for new threads.  Clear single_count.
	Change last argument from ws to team, don't create
	new team, set ts.work_share to &team->work_shares[0] and clear
	ts.last_work_share.  Don't clear ts.work_share_generation.
	If number of threads changed, adjust atomically gomp_managed_threads.
	Use gomp_init_task instead of gomp_new_task,
	set thr->task to the corresponding implicit_task array entry.
	Create tasks for each member thread.  Initialize ts.level.
	(initialize_team): Call pthread_key_create on
	gomp_thread_destructor.
	(team_destructor): New function.
	(new_team): Removed.
	(gomp_new_team): New function.
	(free_team): Free gomp_work_share blocks chained through next_alloc,
	instead of freeing work_shares and destroying work_share_lock.
	(gomp_team_end): Call gomp_fini_work_share.  If number of threads
	changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
	* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
	of gomp_barrier_wait.
	* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
	instead of gomp_barrier_wait.  Call gomp_work_share_init_done
	if gomp_work_share_start returned true.  Don't unlock ws->lock.
	(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
	of gomp_barrier_wait.
	(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
	gomp_work_share_init_done if gomp_work_share_start returned true.
	Don't unlock ws->lock.
	* work.c: Include stddef.h.
	(free_work_share): Use work_share_list_free_lock instead
	of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
	Call gomp_fini_work_share and then either free ws if orphaned, or
	put it into work_share_list_free list of the current team.
	(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
	functions.
	(gomp_work_share_start, gomp_work_share_end,
	gomp_work_share_end_nowait): Rewritten.
	* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
	(openmp_version): Set to 200805.
	(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
	omp_sched_guided, omp_sched_auto): New parameters.
	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
	omp_set_max_active_levels, omp_get_max_active_levels,
	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
	omp_get_active_level): New interfaces.
	* omp_lib.h.in (openmp_version): Set to 200805.
	(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
	omp_sched_guided, omp_sched_auto): New parameters.
	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
	omp_set_max_active_levels, omp_get_max_active_levels,
	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
	omp_get_active_level): New externals.
	* loop.c: Include limits.h.
	(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
	GFS_AUTO.
	(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
	Likewise.  Use gomp_icv.
	(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
	ts.static_trip here.
	(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
	gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
	(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
	gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
	don't unlock ws->lock, otherwise lock it.
	(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
	gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
	(gomp_parallel_loop_start): Call gomp_new_team instead of
	gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
	Adjust gomp_team_start caller.  Pass 0 as second argument to
	gomp_resolve_num_threads.
	(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
	If adding ws->chunk_size nthreads + 1 times after end won't
	overflow, set ws->mode to 1.
	* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
	GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
	GOMP_loop_ull_ordered_static_start,
	GOMP_loop_ull_ordered_dynamic_start,
	GOMP_loop_ull_ordered_guided_start,
	GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
	GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
	GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
	GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
	GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
	prototypes.
	* libgomp.map: Export lock routines also @@OMP_2.0.
	(GOMP_loop_ordered_dynamic_first,
	GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
	GOMP_loop_ordered_static_first): Remove.
	(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
	GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
	GOMP_loop_ull_ordered_dynamic_next,
	GOMP_loop_ull_ordered_dynamic_start,
	GOMP_loop_ull_ordered_guided_next,
	GOMP_loop_ull_ordered_guided_start,
	GOMP_loop_ull_ordered_runtime_next,
	GOMP_loop_ull_ordered_runtime_start,
	GOMP_loop_ull_ordered_static_next,
	GOMP_loop_ull_ordered_static_start,
	GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
	GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
	GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
	(omp_set_schedule, omp_get_schedule,
	omp_get_thread_limit, omp_set_max_active_levels,
	omp_get_max_active_levels, omp_get_level,
	omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
	omp_set_schedule_, omp_set_schedule_8_,
	omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
	omp_set_max_active_levels_, omp_set_max_active_levels_8_,
	omp_get_max_active_levels_, omp_get_level_,
	omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
	omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
	New exports @@OMP_3.0.
	* omp.h.in (omp_sched_t): New type.
	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
	omp_set_max_active_levels, omp_get_max_active_levels,
	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
	omp_get_active_level): New prototypes.
	* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
	gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
	gomp_thread_limit_var, gomp_remaining_threads_count,
	gomp_remaining_threads_lock): New variables.
	(parse_spincount): New function.
	(initialize_env): Call gomp_init_num_threads unconditionally.
	Initialize gomp_available_cpus.  Call parse_spincount,
	initialize gomp_{,throttled_}spin_count_var
	depending on presence and value of OMP_WAIT_POLICY and
	GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
	Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
	OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
	for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
	gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
	(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
	gomp_run_sched_var, gomp_run_sched_chunk): Remove.
	(gomp_global_icv): New.
	(parse_schedule): Use it.  Parse "auto".
	(omp_set_num_threads): Use gomp_icv.
	(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
	Likewise.
	(omp_get_max_threads): Move from parallel.c.
	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
	omp_set_max_active_levels, omp_get_max_active_levels): New functions,
	add ialias.
	(parse_stacksize, parse_wait_policy): New functions.
	* fortran.c: Rewrite lock wrappers, if symbol versioning provide
	both wrappers for compatibility and new locks.
	(omp_set_schedule, omp_get_schedule,
	omp_get_thread_limit, omp_set_max_active_levels,
	omp_get_max_active_levels, omp_get_level,
	omp_get_ancestor_thread_num, omp_get_team_size,
	omp_get_active_level): New ialias_redirect.
	(omp_set_schedule_, omp_set_schedule_8_,
	omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
	omp_set_max_active_levels_, omp_set_max_active_levels_8_,
	omp_get_max_active_levels_, omp_get_level_,
	omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
	omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
	New functions.
	* parallel.c: Include limits.h.
	(gomp_resolve_num_threads): Add count argument.  Rewritten.
	(GOMP_parallel_start): Call gomp_new_team and pass that as last
	argument to gomp_team_start.  Pass 0 as second argument to
	gomp_resolve_num_threads.
	(GOMP_parallel_end): Decrease gomp_remaining_threads_count
	if gomp_thread_limit_var != ULONG_MAX.
	(omp_in_parallel): Implement using ts.active_level.
	(omp_get_max_threads): Move to env.c.
	(omp_get_level, omp_get_ancestor_thread_num,
	omp_get_team_size, omp_get_active_level): New functions,
	add ialias.
	* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
	after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
	gomp_iter_dynamic_next instead of the _locked variant and don't take
	lock around it, otherwise acquire it before calling
	gomp_iter_dynamic_next_locked.
	(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
	gomp_iter_dynamic_next instead of the _locked variant and don't take
	lock around it.
	(GOMP_parallel_sections_start): Call gomp_new_team instead of
	gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
	Adjust gomp_team_start caller.  Pass count as second argument to
	gomp_resolve_num_threads, don't adjust num_threads after the call.
	Use gomp_icv.
	* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
	ws->chunk_size by incr.
	(gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
	code.
	* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
	types.
	(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
	(omp_check_defines): Check even the compat defines.
	* config/linux/ptrlock.c: New file.
	* config/linux/ptrlock.h: New file.
	* config/linux/wait.h: New file.
	* config/posix/ptrlock.c: New file.
	* config/posix/ptrlock.h: New file.
	* config/linux/bar.h (gomp_team_barrier_wait,
	gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
	(gomp_team_barrier_set_task_pending,
	gomp_team_barrier_clear_task_pending,
	gomp_team_barrier_set_waiting_for_tasks,
	gomp_team_barrier_waiting_for_tasks,
	gomp_team_barrier_done): New inlines.
	(gomp_barrier_t): Rewritten.
	(gomp_barrier_state_t): New typedef.
	(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
	gomp_barrier_wait_start): Rewritten.
	(gomp_barrier_wait_end): Change second argument to
	gomp_barrier_state_t.
	(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
	inlines.
	* config/linux/bar.c: Include wait.h instead of libgomp.h and
	futex.h.
	(gomp_barrier_wait_end): Rewritten.
	(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
	gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
	* config/posix/bar.h (gomp_barrier_t): Add generation field.
	(gomp_barrier_state_t): New typedef.
	(gomp_team_barrier_wait,
	gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
	(gomp_barrier_wait_start): Or all but low 2 bits from generation
	into the return value.  Return gomp_barrier_state_t.
	(gomp_team_barrier_set_task_pending,
	gomp_team_barrier_clear_task_pending,
	gomp_team_barrier_set_waiting_for_tasks,
	gomp_team_barrier_waiting_for_tasks,
	gomp_team_barrier_done): New inlines.
	(gomp_barrier_wait_end): Change second argument to
	gomp_barrier_state_t.
	(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
	inlines.
	* config/posix/bar.c (gomp_barrier_init): Clear generation field.
	(gomp_barrier_wait_end): Change second argument to
	gomp_barrier_state_t. 
	(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
	gomp_team_barrier_wake): New functions.
	* config/linux/mutex.c: Include wait.h instead of libgomp.h and
	futex.h.
	(gomp_futex_wake, gomp_futex_wait): New variables.
	(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
	* config/linux/lock.c: Rewrite to make locks task owned,
	for backwards compatibility provide the old entrypoints
	if symbol versioning.  Include wait.h instead of libgomp.h and
	futex.h.
	(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
	* config/posix95/lock.c: Rewrite to make locks task owned,
	for backwards compatibility provide the old entrypoints
	if symbol versioning.
	* config/posix/lock.c: Rewrite to make locks task owned,
	for backwards compatibility provide the old entrypoints
	if symbol versioning.
	* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
	(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
	* config/posix/proc.c, config/mingw32/proc.c: Similarly.
	* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(sys_futex0): Return error code.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(sys_futex0): Return error code.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(sys_futex0): Return error code.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(sys_futex0): Return error code.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
	(sys_futex0): Return error code.
	(futex_wake, futex_wait): If ENOSYS was returned, clear
	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
	(cpu_relax, atomic_write_barrier): New static inlines.
	* config/linux/sem.c: Include wait.h instead of libgomp.h and
	futex.h.
	(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
	* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
	* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
	types.
	(omp_nest_lock_t): Change owner into void *, add lock field.
	* config/posix95/omp-lock.h: Include semaphore.h.
	(omp_lock_25_t, omp_nest_lock_25_t): New types.
	(omp_lock_t): Use sem_t instead of mutex if semaphores
	aren't broken.
	(omp_nest_lock_t): Likewise.  Change owner to void *.
	* config/posix/omp-lock.h: Include semaphore.h.
	(omp_lock_25_t, omp_nest_lock_25_t): New types.
	(omp_lock_t): Use sem_t instead of mutex if semaphores
	aren't broken.
	(omp_nest_lock_t): Likewise.  Add owner field.

	* testsuite/libgomp.c/collapse-1.c: New test.
	* testsuite/libgomp.c/collapse-2.c: New test.
	* testsuite/libgomp.c/collapse-3.c: New test.
	* testsuite/libgomp.c/icv-1.c: New test.
	* testsuite/libgomp.c/icv-2.c: New test.
	* testsuite/libgomp.c/lib-2.c: New test.
	* testsuite/libgomp.c/lock-1.c: New test.
	* testsuite/libgomp.c/lock-2.c: New test.
	* testsuite/libgomp.c/lock-3.c: New test.
	* testsuite/libgomp.c/loop-4.c: New test.
	* testsuite/libgomp.c/loop-5.c: New test.
	* testsuite/libgomp.c/loop-6.c: New test.
	* testsuite/libgomp.c/loop-7.c: New test.
	* testsuite/libgomp.c/loop-8.c: New test.
	* testsuite/libgomp.c/loop-9.c: New test.
	* testsuite/libgomp.c/nested-3.c: New test.
	* testsuite/libgomp.c/nestedfn-6.c: New test.
	* testsuite/libgomp.c/sort-1.c: New test.
	* testsuite/libgomp.c/task-1.c: New test.
	* testsuite/libgomp.c/task-2.c: New test.
	* testsuite/libgomp.c/task-3.c: New test.
	* testsuite/libgomp.c/task-4.c: New test.
	* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
	to C++ testsuite default compiler options.
	* testsuite/libgomp.c++/collapse-1.C: New test.
	* testsuite/libgomp.c++/collapse-2.C: New test.
	* testsuite/libgomp.c++/ctor-10.C: New test.
	* testsuite/libgomp.c++/for-1.C: New test.
	* testsuite/libgomp.c++/for-2.C: New test.
	* testsuite/libgomp.c++/for-3.C: New test.
	* testsuite/libgomp.c++/for-4.C: New test.
	* testsuite/libgomp.c++/for-5.C: New test.
	* testsuite/libgomp.c++/loop-8.C: New test.
	* testsuite/libgomp.c++/loop-9.C: New test.
	* testsuite/libgomp.c++/loop-10.C: New test.
	* testsuite/libgomp.c++/task-1.C: New test.
	* testsuite/libgomp.c++/task-2.C: New test.
	* testsuite/libgomp.c++/task-3.C: New test.
	* testsuite/libgomp.c++/task-4.C: New test.
	* testsuite/libgomp.c++/task-5.C: New test.
	* testsuite/libgomp.c++/task-6.C: New test.
	* testsuite/libgomp.fortran/allocatable1.f90: New test.
	* testsuite/libgomp.fortran/allocatable2.f90: New test.
	* testsuite/libgomp.fortran/allocatable3.f90: New test.
	* testsuite/libgomp.fortran/allocatable4.f90: New test.
	* testsuite/libgomp.fortran/collapse1.f90: New test.
	* testsuite/libgomp.fortran/collapse2.f90: New test.
	* testsuite/libgomp.fortran/collapse3.f90: New test.
	* testsuite/libgomp.fortran/collapse4.f90: New test.
	* testsuite/libgomp.fortran/lastprivate1.f90: New test.
	* testsuite/libgomp.fortran/lastprivate2.f90: New test.
	* testsuite/libgomp.fortran/lib4.f90: New test.
	* testsuite/libgomp.fortran/lock-1.f90: New test.
	* testsuite/libgomp.fortran/lock-2.f90: New test.
	* testsuite/libgomp.fortran/nested1.f90: New test.
	* testsuite/libgomp.fortran/nestedfn4.f90: New test.
	* testsuite/libgomp.fortran/strassen.f90: New test.
	* testsuite/libgomp.fortran/tabs1.f90: New test.
	* testsuite/libgomp.fortran/tabs2.f: New test.
	* testsuite/libgomp.fortran/task1.f90: New test.
	* testsuite/libgomp.fortran/task2.f90: New test.
	* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
	* testsuite/libgomp.fortran/vla5.f90: Likewise.
	* testsuite/libgomp.c/pr26943-2.c: Likewise.
	* testsuite/libgomp.c/pr26943-3.c: Likewise.
	* testsuite/libgomp.c/pr26943-4.c: Likewise.

Co-Authored-By: Jakob Blomer <jakob.blomer@ira.uka.de>
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Ulrich Drepper <drepper@redhat.com>

From-SVN: r136433
2008-06-06 15:01:54 +02:00
Uros Bizjak
c4fe74e01a i386.md (*indirect_jump): Macroize using P mode iterator.
* config/i386/i386.md (*indirect_jump): Macroize using P
	mode iterator.  Remove !TARGET_64BIT from insn constraints.
	(*tablejump_1): Ditto.
	(*indirect_jump_rex64): Remove insn pattern.
	(*tablejump_1_rex64): Ditto.
	(eh_return_<mode>): Macroize using P mode iterator from eh_return_di
	and eh_return_si insn patterns.

From-SVN: r136431
2008-06-06 13:57:16 +02:00
Richard Guenther
9f09b13fd4 tree-ssa-structalias.c (merge_smts_into): Remove.
2008-06-06  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (merge_smts_into): Remove.
	(find_what_p_points_to): Do not bother to compute the
	points-to set for pt_anything pointers.
	* tree-ssa-operands.c (get_addr_dereference_operands): No NMT
	for pt_anything pointers is ok.

	* gcc.dg/tree-ssa/alias-18.c: XFAIL some sub-tests.

From-SVN: r136428
2008-06-06 10:11:44 +00:00
Jan Hubicka
9fbe48c0a4 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
From-SVN: r136427
2008-06-06 09:35:19 +00:00
Ralf Wildenhues
fa10beec52 cgraph.c: Fix typos in comments.
gcc/
	* cgraph.c: Fix typos in comments.
	(cgraph_availability_names): Fix string typo.
	* fold-const.c: Fix typos in comments.
	(fold_binary): Fix typo in warning.
	* genautomata.c: Fix typos in comments.
	(check_presence_pattern_sets): Fix typo in local variable.
	(output_description): Fix typo in output.
	* ggc-zone.c (ggc_pch_finish): Fix typo in error message.
	* hwint.h: Likewise.
	* matrix-reorg.c (check_allocation_function): Likewise.
	* omega.c (smooth_weird_equations): Likewise.
	* auto-inc-dec.c: Fix typos in comments.
	* bb-reorder.c: Likewise.
	* builtins.c: Likewise.
	* c-common.c: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-parser.c: Likewise.
	* c-pretty-print.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cgraphunit.c: Likewise.
	* coverage.c: Likewise.
	* dbxout.c: Likewise.
	* df-byte-scan.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* dfp.c: Likewise.
	* dominance.c: Likewise.
	* domwalk.c: Likewise.
	* dse.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* et-forest.c: Likewise.
	* function.c: Likewise.
	* function.h: Likewise.
	* gcc.c: Likewise.
	* gcov-io.c: Likewise.
	* gcov.c: Likewise.
	* gcse.c: Likewise.
	* genattrtab.c: Likewise.
	* ggc-page.c: Likewise.
	* gimplify.c: Likewise.
	* gthr-lynx.h: Likewise.
	* haifa-sched.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.h: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-struct-reorg.c: Likewise.
	* ipa-struct-reorg.h: Likewise.
	* ipa-type-escape.c: Likewise.
	* ipa.c: Likewise.
	* loop-doloop.c: Likewise.
	* mips-tfile.c: Likewise.
	* mkmap-flat.awk: Likewise.
	* mkmap-symver.awk: Likewise.
	* modulo-sched.c: Likewise.
	* omp-low.c: Likewise.
	* optabs.c: Likewise.
	* optabs.h: Likewise.
	* opts.c: Likewise.
	* passes.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* pretty-print.h: Likewise.
	* profile.c: Likewise.
	* protoize.c: Likewise.
	* ra-conflict.c: Likewise.
	* real.c: Likewise.
	* recog.c: Likewise.
	* regclass.c: Likewise.
	* regs.h: Likewise.
	* reload.c: Likewise.
	* rtl-error.c: Likewise.
	* rtlanal.c: Likewise.
	* scan.h: Likewise.
	* sched-rgn.c: Likewise.
	* see.c: Likewise.
	* stmt.c: Likewise.
	* target.h: Likewise.
	* tree-dfa.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-flow-inline.h: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-pass.h: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-alias-warnings.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-live.h: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-vect-analyze.c: Likewise.
	* tree-vect-transform.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vn.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tree.def: Likewise.
	* tree.h: Likewise.
	* unwind-dw2-fde.c: Likewise.
	* unwind.inc: Likewise.
	* value-prof.c: Likewise.
	* vmsdbgout.c: Likewise.

From-SVN: r136425
2008-06-06 05:42:00 +00:00
David Edelsohn
6bf2f78acc xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not always place FP constants in the TOC for TARGET_POWERPC64.
* config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
        always place FP constants in the TOC for TARGET_POWERPC64.
        * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.

From-SVN: r136423
2008-06-05 21:52:50 -04:00
GCC Administrator
16bb33d1e3 Daily bump.
From-SVN: r136421
2008-06-06 00:17:17 +00:00
Joseph Myers
4f011e1ea0 config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
* config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
	* config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
	enable for TARGET_E500_DOUBLE.
	(*movdd_softfloat32): Also enable for !TARGET_FPRS.
	* config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
	floating-point modes like integer modes for E500 double.
	(rs6000_legitimate_offset_address_p): Likewise.
	(rs6000_legitimize_address): Likewise.  Do not allow REG+REG
	addressing for DDmode for E500 double.
	(rs6000_hard_regno_nregs): Do not treat decimal floating-point
	modes as using 64-bits of registers for E500 double.
	(spe_build_register_parallel): Do not handle DDmode or TDmode.
	(rs6000_spe_function_arg): Do not handle DDmode or TDmode
	specially for E500 double.
	(function_arg): Do not call rs6000_spe_function_arg for DDmode or
	TDmode for E500 double.
	(rs6000_gimplify_va_arg): Only handle SDmode in registers
	specially if TARGET_HARD_FLOAT && TARGET_FPRS.
	(rs6000_split_multireg_move): Do not handle TDmode specially for
	E500 double.
	(spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
	using 64-bit registers for E500 double.
	(emit_frame_save): Do not handle DDmode specially for E500 double.
	(gen_frame_mem_offset): Likewise.
	(rs6000_function_value): Do not call spe_build_register_parallel
	for DDmode or TDmode.
	(rs6000_libcall_value): Likewise.
	* config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
	DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
	for E500 double.

From-SVN: r136416
2008-06-06 00:03:11 +01:00
Johannes Singler
3611e1767d random_shuffle.h: (parallel_random_shuffle_drs) Get the actual number of threads after entering...
2008-06-05  Johannes Singler  <singler@ira.uka.de>

        * include/parallel/random_shuffle.h:
        (parallel_random_shuffle_drs) Get the actual number of
        threads after entering the parallel region. Indentation.
        * include/parallel/algo.h: (random_shuffle(begin, end))
        Add namespace qualification to avoid ambiguity.

From-SVN: r136406
2008-06-05 15:47:17 +00:00
H.J. Lu
bd7415dbca i386.c (setup_incoming_varargs_64): Fix a typo in comments.
2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
	in comments.

From-SVN: r136395
2008-06-05 06:21:04 -07:00
Danny Smith
a39e2a91ba re PR driver/35916 (problem running GCC under Vista with relocated directory)
PR driver/35916
	* mh-mingw (CFLAGS): Add -D__USE_MINGW_ACCESS.

From-SVN: r136389
2008-06-05 03:45:41 +00:00
Junjie Gu
9e8c2a98fc lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned comparison for frame pointers.
2008-06-04  Junjie Gu <jgu@tensilica.com>
	* config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
	comparison for frame pointers.

From-SVN: r136386
2008-06-05 00:24:50 +00:00
GCC Administrator
9ce312372c Daily bump.
From-SVN: r136383
2008-06-05 00:17:22 +00:00
Joseph Myers
6130e0f0cf target-supports.exp (check_effective_target_powerpc_spu): Call check_effective_target_powerpc_altivec_ok.
* lib/target-supports.exp (check_effective_target_powerpc_spu):
	Call check_effective_target_powerpc_altivec_ok.
	* gcc.target/powerpc/dfp-dd.c, gcc.target/powerpc/dfp-td.c,
	gcc.target/powerpc/ppc32-abi-dfp-1.c,
	gcc.target/powerpc/ppu-intrinsics.c: Require powerpc_fprs.

From-SVN: r136378
2008-06-05 00:20:01 +01:00