Commit Graph

64841 Commits

Author SHA1 Message Date
Mark Mitchell aae4a27747 re PR c++/17413 (local classes as template argument)
PR c++/17413
	* pt.c (check_instantiated_args): Remove bogus SFINAE code.

	PR c++/17413
	* g++.dg/template/local4.C: New test.
	* g++.dg/template/crash19.C: Add dg-error marker.

From-SVN: r92562
2004-12-23 19:54:09 +00:00
Eric Christopher 3316f96899 mips.h (TARGET_CPU_CPP_BUILTINS): Add assert for machine=mips for !TARGET_IRIX.
2004-12-23  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add
	assert for machine=mips for !TARGET_IRIX.
	* config/mips/linux.h: Remove machine=mips assert.
	* config/mips/netbsd.h: Ditto.
	* config/mips/openbsd.h: Ditto.

From-SVN: r92561
2004-12-23 19:39:31 +00:00
Janis Johnson 56a5f30a48 Fix ChangeLog entry from 2004-12-22 from 'dg-xfail-if' to 'dg-skip-if'
From-SVN: r92558
2004-12-23 16:55:34 +00:00
Mark Mitchell b3d1c238d8 * g++.dg/template/crash31.C: Correct embedded PR number.
From-SVN: r92557
2004-12-23 16:47:19 +00:00
Mark Mitchell cc29fd59a5 * cvt.c (convert_to_void): Fix typo in comment.
From-SVN: r92556
2004-12-23 16:31:16 +00:00
Mark Mitchell ce21424d74 re PR c++/16405 (Temporary aggregate copy not elided)
PR c++/16405
	* gimplify.c (gimplify_modify_expr_rhs): Handle
	INDIRECT_REF/ADDR_EXPR combinations.

From-SVN: r92555
2004-12-23 16:27:11 +00:00
Dale Johannesen d070d4fd52 tree.c (iterative_hash_expr): Canonicalize builtins.
2004-12-23  Dale Johannesen  <dalej@apple.com>

        * tree.c (iterative_hash_expr):  Canonicalize builtins.

From-SVN: r92553
2004-12-23 16:21:31 +00:00
Alexandre Oliva 08167d1cdb re PR c++/18962 (specialization of template class with inner template members and parameter)
gcc/cp/ChangeLog:
PR c++/18962
* pt.c (check_explicit_specialization): Use the argument list from
the definition in a template function specialization definition.
gcc/testsuite/ChangeLog:
* g++.dg/template/spec19.C: New.

From-SVN: r92552
2004-12-23 16:12:57 +00:00
Alexandre Oliva faa003343e re PR target/16819 (ICE with empty struct as arg)
gcc/ChangeLog:
PR target/16819
* calls.c (load_register_parameters): Don't call use_regs when
nregs is zero.
gcc/testsuite/ChangeLog:
PR target/16891
* gcc.dg/empty2.c: New.

From-SVN: r92551
2004-12-23 16:09:01 +00:00
Eric Botcazou 579eab5897 re PR middle-end/17746 (ICE when building the Ada RTS)
PR middle-end/17746
	* expr.c (get_inner_reference): Add 'keep_aligning' parameter.
	Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT
	platforms only if keep_aligning is true.
	(expand_assignment): Adjust call to get_inner_reference.
	(expand_expr_addr_expr_1): Likewise.
	(expand_expr_real_1): Likewise.
	* dojump.c (do_jump): Likewise.
	* dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
	* fold-const.c (optimize_bit_field_compare): Likewise.
	(decode_field_reference): Likewise.
	(split_address_to_core_and_offset): Likewise.
	* tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
	* tree.h (get_inner_reference): Adjust prototype.

ada/
	* trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
	* utils2.c (build_unary_op): Likewise.

From-SVN: r92550
2004-12-23 13:05:50 +00:00
Eric Botcazou 2614034eea re PR middle-end/17746 (ICE when building the Ada RTS)
PR middle-end/17746
	* expr.c (get_inner_reference): Add 'keep_aligning' parameter.
	Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT
	platforms only if keep_aligning is true.
	(expand_assignment): Adjust call to get_inner_reference.
	(expand_expr_addr_expr_1): Likewise.
	(expand_expr_real_1): Likewise.
	* dojump.c (do_jump): Likewise.
	* dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
	* fold-const.c (optimize_bit_field_compare): Likewise.
	(decode_field_reference): Likewise.
	(split_address_to_core_and_offset): Likewise.
	* tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
	* expr.h (get_inner_reference): Adjust prototype.

ada/
	* trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
	* utils2.c (build_unary_op): Likewise.

From-SVN: r92549
2004-12-23 13:02:33 +00:00
Richard Henderson 9690a82122 i386.c (override_options): Revert last change wrt fancy 387 math.
* config/i386/i386.c (override_options): Revert last change
        wrt fancy 387 math.

From-SVN: r92547
2004-12-23 02:38:14 -08:00
Richard Henderson e26b63b29f alpha.md (one_cmpl<mode>2, [...]): New macroized vector operate patterns.
* config/alpha/alpha.md (one_cmpl<mode>2, and<mode>3, andnot<mode>3,
        ior<mode>3, iornot<mode>3, xor<mode>3, xornot<mode>3): New macroized
        vector operate patterns.

From-SVN: r92545
2004-12-23 02:32:42 -08:00
Richard Henderson 3e8aba3481 target-supports.exp (check_effective_target_vect_no_align): Remove i?86 and x86-64.
* lib/target-supports.exp (check_effective_target_vect_no_align):
        Remove i?86 and x86-64.

From-SVN: r92544
2004-12-23 02:25:45 -08:00
Richard Henderson c38573a8d0 i386.c (ix86_expand_vector_move): Tidy.
* config/i386/i386.c (ix86_expand_vector_move): Tidy.
        (ix86_expand_vector_move_misalign): New.
        (ix86_misaligned_mem_ok): Remove.
        (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
        * config/i386/i386-protos.h: Update.
        * config/i386/i386.md (SSEMODEI): Rename from SSEINT16.
        (MMXMODEI): Rename from MMXINT8.
        (SSEMODE, MMXMODE, movmisalign<mode>): New.

From-SVN: r92543
2004-12-23 02:20:04 -08:00
Mark Mitchell f98625f6a5 re PR c++/16405 (Temporary aggregate copy not elided)
PR c++/16405
	* gimplify.c (gimplify_modify_expr_rhs): Handle
	INDIRECT_REF/ADDR_EXPR combinations.

	PR c++/16405
	* g++.dg/opt/temp1.C: New test.

From-SVN: r92539
2004-12-23 08:14:33 +00:00
Richard Henderson ad78a663e8 alpha.c (alpha_expand_mov): Split out ...
* config/alpha/alpha.c (alpha_expand_mov): Split out ...
        (alpha_expand_movmisalign): ... misaligned vector support.
        (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
        * config/alpha/alpha-protos.h: Update.
        * config/alpha/alpha.md (VEC): New macro.
        (movv8qi, movv4hi, movv2si): Compress with VEC.
        (movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise.
        (movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise.
        (movmisalign<mode>): New.

From-SVN: r92538
2004-12-23 00:08:59 -08:00
Richard Henderson 1e0598e25c optabs.h (OTI_movmisalign, [...]): New.
* optabs.h (OTI_movmisalign, movmisalign_optab): New.
        * optabs.c (init_optabs): Create it.
        * genopinit.c (optabs): Initialize it.
        * expr.c (expand_expr_real_1) <MISALIGNED_INDIRECT_REF>: Use it.
        * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
        * target-def.h (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
        * target.h (vectorize.misaligned_mem_ok): Remove.
        * targhooks.c (default_vect_misaligned_mem_ok): Remove.
        * doc/md.texi (movmisalign): New.
        * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.

From-SVN: r92537
2004-12-22 23:58:41 -08:00
Richard Henderson 1c47af84a3 emmintrin.h (_mm_loadh_pd): Don't cast pointer arg to __v2si.
* config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg
        to __v2si.
        (_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise.
        * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or
        const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
        __builtin_ia32_storehpd, __builtin_ia32_storelpd.
        (ix86_expand_builtin): Update to match.
        (ix86_expand_vector_init): Use sse2_loadlpd.
        * config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd.
        (vec_extractv2df): Use sse2_storelpd, sse2_storehpd.
        (sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New.
        (sse2_movhpd): Remove.

From-SVN: r92536
2004-12-22 23:49:24 -08:00
Alan Modra 5e5f01b969 re PR target/18751 (ICE in expr.c:5083, profiledbootstrap)
PR target/18751
	* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return
	false for anything larger than 32 bits in 32-bit code.

From-SVN: r92535
2004-12-23 18:04:45 +10:30
Richard Henderson ad4f9e7ebb i386.md (btsq, btrq, btcq): Fix modes.
* config/i386/i386.md (btsq, btrq, btcq): Fix modes.
        (bt peepholes): Likewise.

From-SVN: r92534
2004-12-22 23:23:31 -08:00
Richard Henderson d5606ec91f * varasm.c (force_const_mem): Call set_mem_align.
From-SVN: r92533
2004-12-22 23:13:05 -08:00
Richard Henderson 513618db0a predicates.md (sse_comparison_operator): Fix typo in ieee test.
* config/i386/predicates.md (sse_comparison_operator): Fix
        typo in ieee test.
        (arith_or_logical_operator): Downcase codes.

From-SVN: r92532
2004-12-22 22:18:22 -08:00
Kaz Kojima 2ca396208c re PR target/18511 (cc1plus segfaults when compiling libstdc++-v3/src/localename.cc)
PR target/18511
	* reload1.c (emit_output_reload_insns): Check if OLD is a hard
	register before calling regno_clobbered_p.
	* reload.c: Update comment for regno_clobbered_p.

From-SVN: r92531
2004-12-23 04:53:48 +00:00
Richard Henderson a5370cf0e6 i386.c (override_options): Respect user disable of fancy 387 math, sse, mmx.
* config/i386/i386.c (override_options): Respect user disable of
        fancy 387 math, sse, mmx.
        (construct_container): Generate error if we need an sse regster
        and sse has been disabled.
        * config/i386/i386.h (TARGET_SWITCHES): Disabling sse also disables
        later sse generations.  Disabling mmx also disables 3dnow.

From-SVN: r92530
2004-12-22 19:49:04 -08:00
Daniel Berlin b9cd7e9d86 tree-inline.c (struct inline_data): Remove inlined_fns.
2004-12-22  Daniel Berlin  <dberlin@dberlin.org>

	* tree-inline.c (struct inline_data): Remove inlined_fns.
	(expand_call_inline): Remove dead code setting
	inlined_fns.
	(optimize_inline_calls): Remove dead code setting DECL_INLINED_FNS.
	* tree.h (struct tree_decl): Remove inlined_fns.

From-SVN: r92529
2004-12-23 02:50:24 +00:00
Giovanni Bajo f65b7de376 re PR c++/18733 (friend rejected)
PR c++/18733
	* pt.c (check_explicit_specialization): Use special logic to validate
	befriended specializations.

	PR c++/18733
	* g++.dg/template/friend33.C: New testcase.

From-SVN: r92527
2004-12-23 01:49:39 +00:00
Roger Sayle 4ca551d190 * tree-browser.c: Remove obsolete #ifdef HOST_EBCDIC code.
From-SVN: r92525
2004-12-23 01:22:18 +00:00
GCC Administrator a1df694e93 Daily bump.
From-SVN: r92523
2004-12-23 00:16:26 +00:00
Alan Modra 07b7380ef7 fix overlong line
From-SVN: r92520
2004-12-23 10:45:17 +10:30
Alan Modra 6ccd356e0d re PR target/18896 (addressing split complex parm)
PR target/18896
	* function.c (split_complex_args): Set DECL_ARTIFICIAL and DECL_IGNORED_P
	for real and imaginary parts if the parm is addressable.
	(assign_parms_unsplit_complex): If parm addressable, save real
	and imaginary parts to a stack temp.  Pass assign_parm_data_all.
	(assign_parms): Adjust assign_parms_unsplit_complex call.

From-SVN: r92519
2004-12-23 10:40:45 +10:30
Daniel Berlin 4407522029 tree.h (DECL_PTA_ALIASVAR): Dead.
2004-12-22  Daniel Berlin  <dberlin@dberlin.org>

	* tree.h (DECL_PTA_ALIASVAR): Dead.
	(struct tree_decl): Remove alias_var field.

From-SVN: r92515
2004-12-22 22:32:15 +00:00
Nathan Sidwell 938802033e system.h (IN_RANGE): Restore HOST_WIDE_INT cast.
* system.h (IN_RANGE): Restore HOST_WIDE_INT cast.
	* tree.h (IS_EXPR_CODE_CLASS): Do not use IN_RANGE.

From-SVN: r92511
2004-12-22 22:06:35 +00:00
Mark Mitchell 5e001b48af * rtti.c (emit_support_tinfos): Avoid using C99 semantics.
From-SVN: r92504
2004-12-22 21:32:33 +00:00
Richard Henderson 5b1f1e63f9 i386.md (truncdfsf2): Don't create stack temp when using sse math only.
* config/i386/i386.md (truncdfsf2): Don't create stack temp when
        using sse math only.  Use truncdfsf2_with_temp.
        (truncdfsf2_with_temp): New.
        (truncdfsf_fast_i387): Rename from truncdfsf2_noop.  Add memory
        output alternative.
        (truncdfsf_mixed): Rename from truncdfsf2_1_sse.  Compress duplicate
        alternatives.
        (truncdfsf_fast_sse): Rename from truncdfsf2_2.  Remove f alternative.
        (truncdfsf2_3, truncdfsf2_sse_only): Remove.
        (truncdfsf_i387): Rename from truncdfsf2_1.  Compress duplicates.
        (truncdfsf_fast_mixed): New.
        (truncdfsf splitters): Remove all except the 387 load/store split.
        (truncxfsf2_1, truncxfdf2_1): Unify enable constraint with
        respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH and
        TARGET_MIX_SSE_I387.
        (*truncxf{s,d}f2_1): Rename to *truncxf{s,d}f2_mixed.
        (truncxf{s,d}f2_noop) Rename to truncxf{d,s}f2_i387_noop.
        (*truncxf{s,d}f2_i387): New patterns.
        (*truncxf{s,d}f2_2): Rename to *truncxf{s,d}f2_i387_1.
        (truncxf{s,d}f2, fmod{s,d}f3, drem{s,d}f3, log1p{s,d}f2,
        rint{s,d}f2, floor{s,d}f2, ceil{s,d}f2, btrunc{s,d}f2,
        nearbyint{s,d}f2): Use renamed patterns.

Co-Authored-By: Uros Bizjak <uros@kss-loka.si>

From-SVN: r92498
2004-12-22 11:07:44 -08:00
Richard Henderson ad50bc8d80 [multiple changes]
2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.

2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * tree.h (TYPE_SIZES_GIMPLIFIED): New.
        * function.c (gimplify_parm_type): Don't gimplify type if already done.
        * gimplify.c (gimplify_decl_expr): Likewise.
        (gimplify_type_sizes): Set TYPE_SIZES_GIMPLIFIED.  Examine nested
        array types.

2004-12-22  Richard Henderson  <rth@redhat.com>

        * gimplify.c (eval_save_expr): Remove.
        (gimplify_one_sizepos): Unshare expr before gimplifying.
        * stor-layout.c (variable_size): Revert 2004-12-19 change.
        (layout_decl): Revert 2004-12-18 change.
        (layout_type): Revert 2004-12-21 change.

From-SVN: r92495
2004-12-22 10:51:24 -08:00
Richard Kenner ba9ce455bb * tree-sra.c (type_can_be_decomposed_p): Reject variable sized types.
From-SVN: r92494
2004-12-22 10:43:44 -08:00
Paolo Carlini 821c5063f9 type_traits_fwd.h: New, forward declarations.
2004-12-22  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/type_traits_fwd.h: New, forward declarations.
	* include/tr1/type_traits: Clean-up.
	* include/Makefile.am: Add.
	* include/Makefile.in: Regenerate.

From-SVN: r92493
2004-12-22 18:40:52 +00:00
Mark Mitchell dfb5c52315 re PR c++/18464 (error message about "non-lvalue in unary '&'" when using ?: operator)
PR c++/18464
	* call.c (build_this): In templates, do not bother with
	build_unary_op.
	* typeck.c (unary_complex_lvalue): In a template, always refuse
	simplifications.

	PR c++/18492
	* cp-gimplify.c (cp_genericize): Relax assertion.

	PR c++/11224
	* cvt.c (convert_to_void): Warn about unused values.

	PR c++/18257
	* rtti.c (emit_support_tinfos): On systems without weak symbols,
	emit the runtime library type-info objects as non-COMDAT.

	PR c++/18464
	* g++.dg/template/cond5.C: New test.

	PR c++/18492
	* g++.dg/inherit/thunk3.C: New test.

	PR c++/11224
	* g++.dg/warn/Wunused-9.C: New test.

From-SVN: r92491
2004-12-22 18:00:39 +00:00
Janis Johnson 606145e4e0 * lib/gcc-dg.exp (dg-xfail-if): Fix the flags compared against.
From-SVN: r92490
2004-12-22 17:51:01 +00:00
Mark Mitchell e90f1b9de7 Makefile.in (install-common): Remove special-case code for when SPECS is defined.
* Makefile.in (install-common): Remove special-case code for when
	SPECS is defined.

From-SVN: r92489
2004-12-22 17:22:59 +00:00
Jan Beulich f199d860ae config.gcc: Add dbxelf.h to NetWare's tm_file.
gcc/
2004-12-22  Jan Beulich  <jbeulich@novell.com>

	* config.gcc: Add dbxelf.h to NetWare's tm_file.
	* config/i386/netware-crt0.c: Prototype __init_environment and
	__deinit_environment prior to their definition.
	(__init_environment): Correct invokation of constructor function.
	* config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use
	builtin_define_std rather than builtin_define on IAPX386.
	* config/i386/nwld.h: Disable stabs debugging info with the linker
	this file supports.
	* config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for
	the output. Add -posix to the options as that is the more compatible
	mode.
	* gthr-nks.h: Formatting.
	(__gthread_mutex_init_function): Kill the dubious use of
	NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes
	were not meant to be recursive.
	(__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
	__gthread_recursive_mutex_init_function,
	__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
	__gthread_recursive_mutex_unlock): New.

gcc/testsuite/
2004-12-22  Jan Beulich  <jbeulich@novell.com>

	* gcc.dg/20040813-1.c: Skip for *-*-netware*.

From-SVN: r92488
2004-12-22 08:41:43 +00:00
Alexandre Oliva 340beeb5c2 t-linux64: Remove code that messed with $(SPECS).
* config/mips/t-linux64: Remove code that messed with $(SPECS).
(MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Move
n32 to the front.
(MULTILIB_EXTRA_OPTS, CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
Removed.
* config/mips/linux64.h (DRIVER_SELF_SPECS): Don't handle
-mabi-fake-default.
(SUBTARGET_TARGET_SWITCHES): Likewise.

From-SVN: r92487
2004-12-22 06:02:15 +00:00
Mark Mitchell 943e3eded2 re PR c++/18378 (ICE when returning a copy of a packed member)
PR c++/18378
	* call.c (convert_like_real): Do not permit the use of a copy
	constructor to copy a packed field.

	PR c++/17413
	* decl.c (grokdeclarator): Return error_mark_node, not
	void_type_node, to indicate errors.
	* parser.c (cp_parser_template_parameter_list): Robustify.
	(cp_parser_template_parameter): Likewise.

	PR c++/19034
	* tree.c (cp_tree_equal): Handle OVERLOAD.

	PR c++/18378
	* g++.dg/ext/packed8.C: New test.

	PR c++/13268
	* g++.dg/template/crash31.C: New test.

	PR c++/19034
	* g++.dg/template/crash30.C: New test.

From-SVN: r92486
2004-12-22 03:34:55 +00:00
Volker Reichelt be99edf883 decl.c (define_label): Use POP_TIMEVAR_AND_RETURN.
* decl.c (define_label): Use POP_TIMEVAR_AND_RETURN.
	* name-lookup.c (pushdecl_class_level): Likewise.

From-SVN: r92485
2004-12-22 02:38:15 +00:00
Volker Reichelt a90f8ad5fb * name-lookup.c (pushtag): Add missing POP_TIMEVAR_AND_RETURN.
From-SVN: r92484
2004-12-22 02:11:35 +00:00
GCC Administrator df35e33cd5 Daily bump.
From-SVN: r92479
2004-12-22 00:16:16 +00:00
Andrew Pinski af76441ffa re PR c++/18984 (ICE in check_pointer_types_r)
2004-12-21  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c++/18984
        * pointer-set.c (pointer_set_contains): Add back.
        * pointer-set.h (pointer_set_contains): Add back.

2004-12-21  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c++/18984
        * cp-gimplify.c (cp_genericize_r): Don't insert first but instead
        check to see if contains the pointer.  Insert the statement before
        returning.

2004-12-21  Andrew Pinski  <pinskia@physics.uc.edu>

        PR C++/18984
        * g++.dg/eh/ctor3.C: New test.

From-SVN: r92470
2004-12-21 13:20:02 -08:00
Eric Botcazou 697290b71d stabs-1.m: Allow section name to be quoted and assembly label to begin with '.LL'.
* objc.dg/stabs-1.m: Allow section name to be quoted and
	assembly label to begin with '.LL'.

From-SVN: r92469
2004-12-21 21:02:05 +00:00
Richard Henderson b4830636f8 gimplify.c (eval_save_expr): New.
* gimplify.c (eval_save_expr): New.
        (gimplify_one_sizepos): Use it.
        * stor-layout.c (layout_type): Unshare TYPE_MIN/MAX_VALUE.

From-SVN: r92468
2004-12-21 11:27:08 -08:00