Paolo Carlini [Wed, 5 Sep 2007 19:10:48 +0000 (19:10 +0000)]
re PR c++/30302 (ICE with invalid member in anonymous struct)
/cp
2007-09-03 Paolo Carlini <pcarlini@suse.de>
PR c++/30302
* semantics.c (finish_id_expression): Check that path != NULL_TREE
before using TYPE_BINFO on it.
* class.c (finish_struct_anon): Deal correctly with anonymous
structs (vs unions, as GNU extension) in error messages.
/testsuite
2007-09-03 Paolo Carlini <pcarlini@suse.de>
* gcc/config/i386/cpuid.h: New file.
* gcc/config/i386/driver-i386.c: Include cpuid.h.
(describe_cache): Shrink size and line strings to 100 bytes.
(detect_caches_amd): Return "" for unsupported max_ext_level.
Use __cpuid function.
(detect_caches_intel): Return "" for unsupported max_level.
Use __cpuid function.
(host_detect_local_cpu): Change feature flag variables to
unsigned int. Initialize only extended feature flag variables.
Use __get_cpuid_max to determine max supported cpuid level.
Use __cpuid function to determine supported features. Fix
calculation of family id. Remove is_amd and check signature
directly. Check for Geode signature. Handle family 4 id.
[PROCESSOR_GENERIC32]: New default for unknown family id. Move
cpu discovery code to other part of the function.
[PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
for sub-architecture.
[PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
[PROCESSOR_K8]: Add k8-sse3 architecture.
[PROCESSOR_GENERIC64]: Remove.
* gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
* gcc/config/i386/crtfastmath.c: Include cpuid.h. Use __get_cpuid
to check for SSE and FXSAVE support.
* gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
Add -minline-all-stringops.
* gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
(x86_64-*-*): Ditto.
testsuite/ChangeLog:
* gcc.dg/i386-cpuid.h: Remove.
* gcc.target/i386/mmx-check.h: Include cpuid.h. Use __get_cpuid.
* gcc.target/i386/sse-check.h: Ditto.
* gcc.target/i386/sse2-check.h: Ditto.
* gcc.target/i386/sse3-check.h: Ditto.
* gcc.target/i386/ssse3-check.h: Ditto.
* gcc.target/i386/sse4_1-check.h: Ditto.
* gcc.target/i386/sse4_2-check.h: Ditto.
* gcc.target/i386/sse4a-check.h: Ditto.
* gcc.dg/torture/pr16104-1.c: Ditto.
* gcc.target/i386/mmx-4.c: Do not use NOINLINE.
* gcc.target/i386/sse-6.c: Ditto.
* gcc.target/i386/sse-7.c: Ditto.
* g++.dg/other/i386-1.C: Include cpuid.h.
(main): New function. Use __get_cpuid to check target fetaures.
libgomp/ChangeLog:
* testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
(main): Use __get_cpuid to get i386 target fetaures.
* testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
(main): Use __get_cpuid to get x86_64 target fetaures.
* Makefile.in (stmt.o): Add alloc-pool.h dependency.
* stmt.c: Include alloc-pool.h.
(struct case_node): Remove GTY marker.
(add_case_node): New parameter case_node_pool. Use it for
allocation of r.
(expand_case): New allocation pool case_node_pool. Initialize it,
pass to add_case_node and free it.
gcc/
* config/mips/mips.c (mips_legitimize_tls_address): Call sorry
if we encounter TLS address in MIPS16 mode.
(mips_legitimize_const_move): Check cannot_force_const_mem for
the (const (plus symbol offset)) case; this forces invalid TLS
address in MIPS16 mode to be caught by the above call to sorry.
(override_options): Don't reset targetm.have_tls in MIPS16 mode,
because that now enables emutls, which is not ABI compatible
with native TLS in non-MIPS16 mode.
configure.ac (--enable-stage1-checking): If neither --enable-checking nor --disable-checking is provided also turn on...
2007-09-05 Richard Guenther <rguenther@suse.de>
* configure.ac (--enable-stage1-checking): If neither --enable-checking
nor --disable-checking is provided also turn on yes and types
checking for stage1.
* configure: Re-generate.
Paul Thomas [Wed, 5 Sep 2007 13:34:25 +0000 (13:34 +0000)]
re PR fortran/31564 (Error: Type/rank mismatch in argument)
2007-09-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31564
* primary.c (gfc_match_rvalue): Make expressions that refer
to derived type parameters that have array references into
variable expressions. Remove references to use association
from the symbol.
PR fortran/33241
* decl.c (add_init_expr_to_sym): Provide assumed character
length parameters with the length of the initialization
expression, if a constant, or that of the first element of
an array.
2007-09-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31564
* gfortran.dg/derived_comp_array_ref_2.f90: New test.
PR fortran/33241
* gfortran.dg/char_length_10.f90: New test.
Jan Hubicka [Wed, 5 Sep 2007 10:51:34 +0000 (12:51 +0200)]
optabs.c (libfunc_entry): Change optab to integer.
* optabs.c (libfunc_entry): Change optab to integer.
(hash_libfunc, convert_optab_libfunc, optab_libfunc,
set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
of pointers for hashing.
Paolo Carlini [Wed, 5 Sep 2007 09:31:54 +0000 (09:31 +0000)]
PR c++/29731 (again)
/cp
2007-09-05 Paolo Carlini <pcarlini@suse.de>
PR c++/29731 (again)
* parser.c (cp_parser_primary_expression): Return error_mark_node
when a statement-expression is found in a template-argument list.
/testsuite
2007-09-05 Paolo Carlini <pcarlini@suse.de>
Andrew Pinski [Wed, 5 Sep 2007 01:36:09 +0000 (01:36 +0000)]
config.gcc (powerpc*-*-*): Install spu2vmx.h, vec_types.h, and si2vmx.h headers.
2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config.gcc (powerpc*-*-*): Install
spu2vmx.h, vec_types.h, and si2vmx.h headers.
* config/rs6000/spu2vmx.h: New header.
* config/rs6000/si2vmx.h: New header.
* config/rs6000/vec_types.h: New header.
2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
Ben Elliston [Wed, 5 Sep 2007 01:22:05 +0000 (01:22 +0000)]
ppu_intrinsics.h (__ldarx): Use `Z' constraint, not `m' for *ptrp.
* config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
not `m' for *ptrp.
(__stdcx): Make asm volatile.
(__stwcx, __stdcx): Return only 0 or 1.
Jerry DeLisle [Wed, 5 Sep 2007 00:51:18 +0000 (00:51 +0000)]
re PR libfortran/33225 (Missing last digit in some formatted output (on 32bit targets), per kind write_float)
2007-03-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/33225
* io/write.c (stdbool.h): Add include. (sign_t): Move typedef to
new file write_float.def. Include write_float.def.
(extract_real): Delete. (calculate_sign): Delete.
(calculate_exp): Delete. (calculate_G_format): Delete.
(output_float): Delete. (write_float): Delete.
* io/write_float.def (calculate_sign): Added.
(output_float): Refactored to be independent of kind and added to this
file for inclusion. (write_infnan): New function to write "Infinite" or
"NaN" depending on flags passed, independent of kind.
(CALCULATE_EXP): New macro to build kind specific functions. Use it.
(OUTPUT_FLOAT_FMT_G): New macro, likewise. Use it.
(DTOA, DTOAL): Macros to implement "decimal to ascii".
(WRITE_FLOAT): New macro for kind specific write_float functions.
(write_float): Revised function to determine kind and use WRITE_FLOAT
to implement kind specific output.
2007-09-04 Richard Guenther <rguenther@suse.de>
* tree-ssa-operands.c (add_virtual_operand): Only mark
stores as has_volatile_ops if alias information is not available.
Jakub Jelinek [Tue, 4 Sep 2007 23:31:11 +0000 (01:31 +0200)]
re PR rtl-optimization/32300 (ICE with -O2 -fsee)
PR rtl-optimization/32300
* see.c (see_copy_insn): New function.
(see_def_extension_not_merged, see_merge_one_use_extension,
see_merge_one_def_extension): Use it. Avoid changing
PREV_INSN/NEXT_INSN chains directly, insted emit insns
into sequences. Call df_insn_delete on temporary insns
that won't be emitted into the insn stream.
(rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
and run df_process_deferred_rescans () before run_fast_dce.
* c-format.c: Include alloc-pool.h.
(check_format_info_main): New argument fwt_alloc. Use allocation
pool instead of GC. Remove GC deallocation code.
(check_format_arg): Create allocation pool, pass it to
check_format_info_main and free it afterwards.
* Makefile.in (c-format.o): Add alloc-pool.h dependency.
* configure.ac (LIBSTDCXXSPEC): New.
* configure.host: Add arm*-linux* to pthread test.
* configure.ac (LIBGCJTESTSPEC): Add path to libstdc++ for ARM
EABI.
* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
-fexceptions for ARM EABI.
* testsuite/lib/libjava.exp (libjava_arguments): Add libgcj-test.spec.
(libjava_invoke): Log the invocation.
2007-08-15 Andrew Haley <aph@redhat.com>
* configure.ac (extra_ldflags): Define.
* Makefile.am: Use extra_ldflags for all executables.
2007-08-14 Andrew Haley <aph@redhat.com>
* sysdep/arm/backtrace.h: Remove stubs for _Unwind_GetIPInfo,
_Unwind_GetRegionStart, and _Unwind_Backtrace.
2007-07-27 Andrew Haley <aph@redhat.com>
* gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): Stub for
ARM EABI.
* exception.cc (get_exception_header_from_ue): New.
(get_ttype_entry): ARM EABI version.
(PERSONALITY_FUNCTION): Add ARM EABI code.
* sysdep/arm/backtrace.h: New file.
* stacktrace.cc (_URC_NORMAL_STOP): New.
* configure.ac (extra_ldflags_libjava): Add libsupc++.la for ARM
EABI.
* configure.host (BACKTRACESPEC): Add arm/backtrace.h.
* configure.ac (LIBSTDCXXSPEC): New.
* configure.host: Add arm*-linux* to pthread test.
* configure.ac (LIBGCJTESTSPEC): Add path to libstdc++ for ARM
EABI.
* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
-fexceptions for ARM EABI.
* testsuite/lib/libjava.exp (libjava_arguments): Add libgcj-test.spec.
(libjava_invoke): Log the invocation.
2007-08-15 Andrew Haley <aph@redhat.com>
* configure.ac (extra_ldflags): Define.
* Makefile.am: Use extra_ldflags for all executables.
2007-08-14 Andrew Haley <aph@redhat.com>
* sysdep/arm/backtrace.h: Remove stubs for _Unwind_GetIPInfo,
_Unwind_GetRegionStart, and _Unwind_Backtrace.
2007-07-27 Andrew Haley <aph@redhat.com>
* gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): Stub for
ARM EABI.
* exception.cc (get_exception_header_from_ue): New.
(get_ttype_entry): ARM EABI version.
(PERSONALITY_FUNCTION): Add ARM EABI code.
* sysdep/arm/backtrace.h: New file.
* stacktrace.cc (_URC_NORMAL_STOP): New.
* configure.ac (extra_ldflags_libjava): Add libsupc++.la for ARM
EABI.
* configure.host (BACKTRACESPEC): Add arm/backtrace.h.
* src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
Only treat r0 as a struct address if we're actually returning a
struct by address.
Only copy the bytes that are actually within a struct.
(ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
is returned in r0, not passed by address.
(ffi_call): Allocate a word-sized temporary for the case where
a composite is returned in r0.
(ffi_prep_incoming_args_SYSV): Align as necessary.
2007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
directly using the sys_cacheflush syscall.
Jan Hubicka [Tue, 4 Sep 2007 14:03:31 +0000 (16:03 +0200)]
optabs.c (debug_optab_libfunc): Update; make available to gdb.
* optabs.c (debug_optab_libfunc): Update; make available to gdb.
(libfunc_entry): New structure.
(libfunc_hash): New hashtable.
(hash_libfunc): New function.
(eq_libfunc): New function.
(convert_optab_libfunc): New function.
(optab_libfunc): New function.
(expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
expand_float, expand_fix, new_optab, new_convert_optab):
Update for new libfunc API.
(init_libfunc, init_integral_libfuncs,
init_floating_libfuncs, init_interclass_conv_libfuncs
init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
(gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
gen_extend_conv_libfunc): New.
(init_one_libfunc): Revamp for hashtables.
(set_conv_libfunc): Likewise.
(init_optabs): Initialize hashtable; use lazy initialization where possible.
* optabs.h (optab_handlers): Move out of GGC.
(optab, convert_optab): Move out of GGC; add lazy gen info.
(code_to_optab, convert_optab_table, optab_table): Move out of GGC.
(optab_libfunc, convert_optab_libfunc): New.
* builtins.c (expand_builtin_powi): Update for new API.
* expr.c (convert_move): Likewise.
* expmed.c (expand_divmod): Likewise.
rs6000.c (rs6000_stack_info): Allocate space for the GOT pointer only if there is a constant pool.
* config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
GOT pointer only if there is a constant pool. Use the allocated space
for SPE also.
Jan Hubicka [Tue, 4 Sep 2007 13:05:19 +0000 (15:05 +0200)]
vect-reduc-dot-s16b.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-s16b.c: Mark functions noinline.
* gcc.dg/vect/vect-105.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-6.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-53.c: Mark functions noinline.
* gcc.dg/vect/wrapv-vect-reduc-2short.c: Mark functions noinline.
* gcc.dg/vect/fast-math-vect-pr29925.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-u8a.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-7.c: Mark functions noinline.
* gcc.dg/vect/vect-50.c: Mark functions noinline.
* gcc.dg/vect/vect-33.c: Mark functions noinline.
* gcc.dg/vect/vect-16.c: Mark functions noinline.
* gcc.dg/vect/vect-widen-mult-sum.c: Mark functions noinline.
* gcc.dg/vect/vect-float-extend-1.c: Mark functions noinline.
* gcc.dg/vect/vect-92.c: Mark functions noinline.
* gcc.dg/vect/vect-75.c: Mark functions noinline.
* gcc.dg/vect/vect-58.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-2b.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-7.c: Mark functions noinline.
* gcc.dg/vect/no-section-anchors-vect-69.c: Mark functions noinline.
* gcc.dg/vect/vect-114.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4g.c: Mark functions noinline.
* gcc.dg/vect/vect-8.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-vect-iv-1.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-10.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-45.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-10a.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-5.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-18.c: Mark functions noinline.
* gcc.dg/vect/vect-42.c: Mark functions noinline.
* gcc.dg/vect/vect-25.c: Mark functions noinline.
* gcc.dg/vect/vect-vfa-01.c: Mark functions noinline.
* gcc.dg/vect/vect-67.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-3a.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u16-mult.c: Mark functions noinline.
* gcc.dg/vect/vect-106.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-7.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-37.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-2short.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-u8b.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-8.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-79.c: Mark functions noinline.
* gcc.dg/vect/vect-34.c: Mark functions noinline.
* gcc.dg/vect/vect-17.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-102a.c: Mark functions noinline.
* gcc.dg/vect/vect-align-1.c: Mark functions noinline.
* gcc.dg/vect/vect-93.c: Mark functions noinline.
* gcc.dg/vect/vect-widen-mult-s16.c: Mark functions noinline.
* gcc.dg/vect/vect-76.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u16-i2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-2c.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-5.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-8.c: Mark functions noinline.
* gcc.dg/vect/vect-115.c: Mark functions noinline.
* gcc.dg/vect/vect-9.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-vect-iv-2.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-1a.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-11.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-10b.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u32-i4.c: Mark functions noinline.
* gcc.dg/vect/vect-widen-mult-u8.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-6.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-19.c: Mark functions noinline.
* gcc.dg/vect/vect-60.c: Mark functions noinline.
* gcc.dg/vect/vect-26.c: Mark functions noinline.
* gcc.dg/vect/vect-vfa-02.c: Mark functions noinline.
* gcc.dg/vect/vect-85.c: Mark functions noinline.
* gcc.dg/vect/vect-68.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-3b.c: Mark functions noinline.
* gcc.dg/vect/vect-floatint-conversion-1.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i8-gap7.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-8.c: Mark functions noinline.
* gcc.dg/vect/vect-107.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-1.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-20.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-9.c: Mark functions noinline.
* gcc.dg/vect/vect-52.c: Mark functions noinline.
* gcc.dg/vect/vect-35.c: Mark functions noinline.
* gcc.dg/vect/vect-18.c: Mark functions noinline.
* gcc.dg/vect/vect-align-2.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-1.c: Mark functions noinline.
* gcc.dg/vect/vect-77.c: Mark functions noinline.
* gcc.dg/vect/vect-2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-2d.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-6.c: Mark functions noinline.
* gcc.dg/vect/vect-82_64.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-9.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i2-gap.c: Mark functions noinline.
* gcc.dg/vect/vect-116.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-store-u16-i4.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-vect-iv-3.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-1b.c: Mark functions noinline.
* gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-12.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-7.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-101.c: Mark functions noinline.
* gcc.dg/vect/vect-44.c: Mark functions noinline.
* gcc.dg/vect/vect-27.c: Mark functions noinline.
* gcc.dg/vect/vect-vfa-03.c: Mark functions noinline.
* gcc.dg/vect/vect-86.c: Mark functions noinline.
* gcc.dg/vect/vect-100.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-1.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-3c.c: Mark functions noinline.
* gcc.dg/vect/vect-floatint-conversion-2.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u32-mult.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i8.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-fir-lb.c: Mark functions noinline.
* gcc.dg/vect/vect-108.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-9.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-21.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-2.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-2a.c: Mark functions noinline.
* gcc.dg/vect/vect-11.c: Mark functions noinline.
* gcc.dg/vect/vect-70.c: Mark functions noinline.
* gcc.dg/vect/vect-36.c: Mark functions noinline.
* gcc.dg/vect/vect-19.c: Mark functions noinline.
* gcc.dg/vect/vect-95.c: Mark functions noinline.
* gcc.dg/vect/vect-78.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u16-i4.c: Mark functions noinline.
* gcc.dg/vect/vect-3.c: Mark functions noinline.
* gcc.dg/vect/vect-all.c: Mark functions noinline.
* gcc.dg/vect/vect-117.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-13.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-1c.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u16-i2.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Mark functions noinline.
* gcc.dg/vect/vect-20.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-8.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-noreassoc-outer-1.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-102.c: Mark functions noinline.
* gcc.dg/vect/vect-62.c: Mark functions noinline.
* gcc.dg/vect/vect-28.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-10.c: Mark functions noinline.
* gcc.dg/vect/vect-vfa-04.c: Mark functions noinline.
* gcc.dg/vect/vect-87.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-u16a.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-2.c: Mark functions noinline.
* gcc.dg/vect/vect-intfloat-conversion-4a.c: Mark functions noinline.
* gcc.dg/vect/vect-109.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-22.c: Mark functions noinline.
* gcc.dg/vect/no-section-anchors-vect-outer-4h.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-3.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-2b.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-s8a.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-57.c: Mark functions noinline.
* gcc.dg/vect/vect-12.c: Mark functions noinline.
* gcc.dg/vect/vect-71.c: Mark functions noinline.
* gcc.dg/vect/vect-54.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-mult.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-3.c: Mark functions noinline.
* gcc.dg/vect/vect-96.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-1char.c: Mark functions noinline.
* gcc.dg/vect/vect-110.c: Mark functions noinline.
* gcc.dg/vect/vect-intfloat-conversion-1.c: Mark functions noinline.
* gcc.dg/vect/vect-4.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-store-u32-i2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4k.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-1.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-mult.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-14.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-49.c: Mark functions noinline.
* gcc.dg/vect/vect-21.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-9.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-noreassoc-outer-2.c: Mark functions noinline.
* gcc.dg/vect/vect-80.c: Mark functions noinline.
* gcc.dg/vect/vect-63.c: Mark functions noinline.
* gcc.dg/vect/vect-46.c: Mark functions noinline.
* gcc.dg/vect/vect-29.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i8-gap2.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-11.c: Mark functions noinline.
* gcc.dg/vect/vect-88.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i2.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-u16b.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-3.c: Mark functions noinline.
* gcc.dg/vect/vect-83_64.c: Mark functions noinline.
* gcc.dg/vect/vect-intfloat-conversion-4b.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-4.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-pattern-2c.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-s8b.c: Mark functions noinline.
* gcc.dg/vect/vect-30.c: Mark functions noinline.
* gcc.dg/vect/vect-13.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-8a.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-same-dr.c: Mark functions noinline.
* gcc.dg/vect/vect-72.c: Mark functions noinline.
* gcc.dg/vect/vect-38.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-4.c: Mark functions noinline.
* gcc.dg/vect/vect-widen-mult-u16.c: Mark functions noinline.
* gcc.dg/vect/vect-97.c: Mark functions noinline.
* gcc.dg/vect/vect-111.c: Mark functions noinline.
* gcc.dg/vect/vect-intfloat-conversion-2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4d.c: Mark functions noinline.
* gcc.dg/vect/vect-5.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-mult-char-ls.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-store-a-u8-i2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4l.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-2.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-15.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-1short.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u16-i4.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u32-i8.c: Mark functions noinline.
* gcc.dg/vect/vect-22.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-noreassoc-outer-3.c: Mark functions noinline.
* gcc.dg/vect/vect-64.c: Mark functions noinline.
* gcc.dg/vect/vect-89.c: Mark functions noinline.
* gcc.dg/vect/no-tree-dom-vect-bug.c: Mark functions noinline.
* gcc.dg/vect/vect-103.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-51.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-pr29145.c: Mark functions noinline.
* gcc.dg/vect/wrapv-vect-reduc-pattern-2c.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-5.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-s8c.c: Mark functions noinline.
* gcc.dg/vect/vect-11a.c: Mark functions noinline.
* gcc.dg/vect/vect-31.c: Mark functions noinline.
* gcc.dg/vect/vect-14.c: Mark functions noinline.
* gcc.dg/vect/vect-73.c: Mark functions noinline.
* gcc.dg/vect/vect-56.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-2.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-5.c: Mark functions noinline.
* gcc.dg/vect/vect-98.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-float.c: Mark functions noinline.
* gcc.dg/vect/vect-intfloat-conversion-3.c: Mark functions noinline.
* gcc.dg/vect/vect-112.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-9a.c: Mark functions noinline.
* gcc.dg/vect/vect-6.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-43.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4m.c: Mark functions noinline.
* gcc.dg/vect/vect-widen-mult-s8.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-3.c: Mark functions noinline.
* gcc.dg/vect/pr25413.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-16.c: Mark functions noinline.
* gcc.dg/vect/vect-40.c: Mark functions noinline.
* gcc.dg/vect/vect-23.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-noreassoc-outer-4.c: Mark functions noinline.
* gcc.dg/vect/vect-82.c: Mark functions noinline.
* gcc.dg/vect/vect-65.c: Mark functions noinline.
* gcc.dg/vect/vect-48.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-dot-s16a.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u8-i8-gap4.c: Mark functions noinline.
* gcc.dg/vect/vect-104.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-fir.c: Mark functions noinline.
* gcc.dg/vect/vect-iv-6.c: Mark functions noinline.
* gcc.dg/vect/vect-strided-u32-mult.c: Mark functions noinline.
* gcc.dg/vect/vect-32.c: Mark functions noinline.
* gcc.dg/vect/vect-15.c: Mark functions noinline.
* gcc.dg/vect/no-trapping-math-2.c: Mark functions noinline.
* gcc.dg/vect/vect-float-truncate-1.c: Mark functions noinline.
* gcc.dg/vect/vect-91.c: Mark functions noinline.
* gcc.dg/vect/vect-74.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-2a.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-3.c: Mark functions noinline.
* gcc.dg/vect/vect-reduc-2char.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-6.c: Mark functions noinline.
* gcc.dg/vect/vect-99.c: Mark functions noinline.
* gcc.dg/vect/vect-113.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-9b.c: Mark functions noinline.
* gcc.dg/vect/vect-outer-4f.c: Mark functions noinline.
* gcc.dg/vect/vect-7.c: Mark functions noinline.
* gcc.dg/vect/no-vfa-vect-61.c: Mark functions noinline.
* gcc.dg/vect/vect-multitypes-4.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-outer-17.c: Mark functions noinline.
* gcc.dg/vect/vect-24.c: Mark functions noinline.
* gcc.dg/vect/no-scevccp-noreassoc-outer-5.c: Mark functions noinline.
* gcc.dg/vect/vect-83.c: Mark functions noinline.
* gcc.dg/vect/vect-66.c: Mark functions noinline.
* gcc.dg/vect/wrapv-vect-reduc-2char.c: Mark functions noinline.
Jason Merrill [Tue, 4 Sep 2007 12:27:38 +0000 (08:27 -0400)]
re PR c++/14032 (Specialization of inner template using outer template argument doesn't work)
PR c++/14032
* pt.c (most_specialized_class): Substitute outer template
arguments into the arguments of a member template partial
specialization.
(strip_innermost_template_args): New fn.
Jason Merrill [Tue, 4 Sep 2007 12:27:21 +0000 (08:27 -0400)]
re PR c++/14032 (Specialization of inner template using outer template argument doesn't work)
PR c++/14032
* pt.c (most_specialized_class): Substitute outer template
arguments into the arguments of a member template partial
specialization.
(strip_innermost_template_args): New fn.
re PR tree-optimization/33291 (a+=2; a+=2 not simplified to a+=4; with -O3 (ok with gcc-4.2.1))
2007-09-04 Richard Guenther <rguenther@suse.de>
PR tree-optimization/33291
* tree-pretty-print.c (dump_generic_node): Dump all
qualifiers for pointer types, not only first. Dump
qualifiers for aggregate types as well.
* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
use the canonical type for building ARRAY_REFs.
* gimplify.c (canonicalize_addr_expr): Clean up. The
correct validness check is compatibility of the pointer
types. Always use the canonical type for building
ARRAY_REFs and ADDR_EXPRs.
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
change that disabled propagation of ADDR_EXPRs into statements
with volatile ops.
* config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
(umulsi3_highpart): Make into expanders; existing insns are
now named *[insn]_nov6. Add stars to existing [insn]_v6
counterparts' names.
* optabs.c: Remove unnecessary forward declarations.
(expand_unop_direct): New, broken out of expand_unop.
(expand_doubleword_clz): New.
(expand_ctz): Move above expand_ffs. Use
start_sequence, end_sequence, add_equal_note, and
expand_unop_direct. Add more commentary.
(expand_ffs): Try both ctz optab and expand_ctz.
Generate a test and branch if the hardware doesn't give us
a useful value for input zero. Style improvements similar to
expand_ctz.
config.gcc: Delete stanza for arm-semi-aof and armel-semi-aof targets.
* config.gcc: Delete stanza for arm-semi-aof and
armel-semi-aof targets.
* config/arm/arm-protos.h
* config/arm/arm.c
* config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
make all #ifndef AOF_ASSEMBLER blocks unconditional. Also
delete aof_pic_label and remove mention of AOF in comments.
* config/arm/arm.md: Delete patterns used only for AOF assembly.
* config/arm/aof.h
* config/arm/semiaof.h
* config/arm/t-semi: Delete file.
system.h (CONST_CAST2, [...]): New macros for type-specific casts.
* system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
CONST_CAST_BB): New macros for type-specific casts.
(CONST_CAST): Add a TYPE parameter and define it in terms of
CONST_CAST2.
* c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
* c-lex.c (cb_ident, lex_string): Likewise,
* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
* config/i386/i386.c (ix86_function_regparm,
ix86_function_sseregparm): Use CONST_CAST_TREE.
* config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
CONST_CAST.
* gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
give_switch, set_multilib_dir): Likewise,
* gengtype-parse.c (string_seq, typedef_name): Likewise,
* gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
* jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
* passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
* prefix.c (update_path): Likewise,
* pretty-print.c (pp_base_destroy_prefix): Likewise,
* rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
* tree-cfg.c (tree_can_merge_blocks_p,
tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
* tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
* tree.c (build_string): Supply a TYPE for CONST_CAST.
(attribute_list_contained): Use CONST_CAST_TREE.
cp:
* call.c (name_as_c_string): Supply a TYPE for CONST_CAST.
* decl.c (cp_make_fname_decl): Likewise,
* parser.c (cp_parser_string_literal): Likewise,
* tree.c (pod_type_p, zero_init_p): Use CONST_CAST_TREE.
* typeck.c (cp_type_quals, cp_type_readonly, cp_has_mutable_p):
Likewise,
fortran:
* gfortranspec.c (lang_specific_driver): Use CONST_CAST2.
* options.c (gfc_post_options): Supply a TYPE for CONST_CAST.
* parse.c (parse_omp_structured_block): Likewise,
* st.c (gfc_free_statement): Likewise,
java:
* jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
CONST_CAST.
* jcf.h (JCF_FINISH): Likewise.
re PR fortran/31675 (Fortran front-end and libgfortran should have a common header file)
PR fortran/31675
* libgfortran.h: New file.
* iso-fortran-env.def: Use macros in the new header instead of
hardcoded integer constants.
* Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add
fortran/libgfortran.h.
* gfortran.h (GFC_STD_*, GFC_FPE_*, options_convert,
ioerror_codes): Remove.
* trans.c (ERROR_ALLOCATION): Remove.
(gfc_call_malloc, gfc_allocate_with_status,
gfc_allocate_array_with_status): Use LIBERROR_ALLOCATION.
* trans-types.h (GFC_DTYPE_*): Remove.
* trans-decl.c (gfc_generate_function_code): Use
GFC_CONVERT_NATIVE instead of CONVERT_NATIVE.
* trans-io.c (set_parameter_value, set_parameter_ref): Use
LIBERROR_* macros instead of IOERROR_ macros.
* trans-intrinsic.c (gfc_conv_intrinsic_function): Use
LIBERROR_END and LIBERROR_EOR instead of hardcoded constants.
* options.c (gfc_init_options): Use GFC_CONVERT_NATIVE instead of
CONVERT_NATIVE.
(gfc_handle_option): Use GFC_CONVERT_* macros instead of CONVERT_*.
* gcc.c (xputenv): New function.
(putenv_from_prefixes): Use xputenv instead of putenv.
(process_command): Use xputenv instead of putenv.
(set_collect_gcc_options): Use xputenv instead of putenv.
(main): Use xputenv instead of putenv.
H.J. Lu [Mon, 3 Sep 2007 15:19:17 +0000 (15:19 +0000)]
no-tree-scev-cprop-vect-iv-1.c: Restored.
2007-09-03 H.J. Lu <hongjiu.lu@intel.com>
* gcc.dg/vect/no-tree-scev-cprop-vect-iv-1.c: Restored. Moved
to ...
* gcc.dg/vect/no-scevccp-vect-iv-1.c: New test.
* gcc.dg/vect/no-tree-scev-cprop-vect-iv-2.c: Restored. Moved
to ...
* gcc.dg/vect/no-scevccp-vect-iv-2.c: New test.
* gcc.dg/vect/no-tree-scev-cprop-vect-iv-3.c: Restored. Moved
to ...
* gcc.dg/vect/no-scevccp-vect-iv-3.c: New test.
cris.h (TARGET_HAS_SWAP): Defined to describe availability of swap instruction.
* config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
availability of swap instruction.
* config/cris/cris.md (bswapsi2): Implement using swap instruction.
Nick Clifton [Mon, 3 Sep 2007 10:06:52 +0000 (10:06 +0000)]
Make-lang.in: Change copyright header to refer to version 3 of the GNU General Public License...
* Make-lang.in: Change copyright header to refer to version 3 of the GNU
General Public License and to point readers at the COPYING3 file and
the FSF's license web page.
* ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c: Likewise.
Roger Sayle [Sun, 2 Sep 2007 17:44:37 +0000 (17:44 +0000)]
decl.c (match_string_p): New helper function to explicitly match a string of characters.
* decl.c (match_string_p): New helper function to explicitly match
a string of characters.
(match_attr_spec): Remove no longer needed DECL_COLON from decl_types.
Delete decls array and peek_char. Rewrite decl attribute parser to
avoid calling gfc_match_strings.
* match.c (gfc_match_strings): Delete unused function.
* match.h (gfc_match_strings): Delete prototype.
dump-parse-tree.c (show_char_const): New function.
fortran/
* dump-parse-tree.c (show_char_const): New function.
(gfc_show_expr): Use it.
* expr.c (find_substring_ref): Rework to not keep characters
dangling beyond end of string.
testsuite/
* gfortran.dg/substr_6.f90: New test.