Commit Graph

57225 Commits

Author SHA1 Message Date
Mark Mitchell
65196e3724 re PR c++/14230 (ICE in cp_expr_size)
PR c++/14230
	* call.c (initialize_reference): Handle initializers that are
	class-member access expressions applies to rvalues.

	PR c++/14230
	* g++.dg/init/ref11.C: New test.

From-SVN: r79165
2004-03-09 10:08:40 +00:00
Jason Merrill
fab459303f rewrap comment
From-SVN: r79163
2004-03-09 05:06:20 -05:00
Mark Mitchell
f3dfc177db Fix typo
From-SVN: r79161
2004-03-09 10:00:12 +00:00
Mark Mitchell
62d99768eb re PR c++/14432 (Built-ins lead to conflict even if no header file included)
PR c++/14432
	* name-lookup.c (supplement_binding): Ignore functions that are
	marked DECL_ANTICIPATED.

	PR c++/14432
	* g++.dg/parse/builtin2.C: New test.

From-SVN: r79160
2004-03-09 08:26:14 +00:00
Mark Mitchell
58ec3cc5c0 re PR c++/14401 (Uninitialized reference error not reported.)
PR c++/14401
	* class.c (check_field_decls): Complain about non-static data
	members of reference type in unions.  Propagate
	CLASSTYPE_REF_FIELDS_NEED_INIT and
	CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
	data members.
	* init.c (perform_member_init): Complain about mbmers with const
	type that are not explicitly initialized.

	PR c++/14401
	* g++.dg/init/ctor3.C: New test.
	* g++.dg/init/union1.C: New test.
	* g++.dg/ext/anon-struct4.C: New test.

From-SVN: r79158
2004-03-09 08:16:49 +00:00
Benjamin Kosnik
f1c4ca32d0 re PR c++/13658 ([testcase] namespace association vs. templates part one)
2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>

	PR c++/13658
	* testsuite/23_containers/deque/modifiers/swap.cc: New.
	* testsuite/23_containers/list/modifiers/swap.cc: New.
	* testsuite/23_containers/map/modifiers/swap.cc: New.
	* testsuite/23_containers/multimap/modifiers/swap.cc: New.
	* testsuite/23_containers/multiset/modifiers/swap.cc: New.
	* testsuite/23_containers/set/modifiers/swap.cc: New.
	* testsuite/23_containers/vector/modifiers/swap.cc: New.

From-SVN: r79151
2004-03-09 06:01:39 +00:00
Eric Christopher
5340bbea5a Makefile.in (site.exp): Add libiconv variable definition.
2004-03-08  Eric Christopher  <echristo@redhat.com>

	* Makefile.in (site.exp): Add libiconv variable definition.

2004-03-08  Eric Christopher  <echristo@redhat.com>

	* * lib/target-supports.exp: Enable libiconv in test
	compilation.  Fix up error checking.

From-SVN: r79148
2004-03-09 01:53:28 +00:00
Hans-Peter Nilsson
3beb131556 * configure: Regenerate for config/accross.m4 correction.
From-SVN: r79147
2004-03-09 01:22:49 +00:00
Hans-Peter Nilsson
41d4b97939 accross.m4 (AC_C_BIGENDIAN_CROSS): Compile endian probe with "-c".
* accross.m4 (AC_C_BIGENDIAN_CROSS): Compile endian probe with
	"-c".  Properly quote parameter for AC_MSG_ERROR.

From-SVN: r79145
2004-03-09 01:16:10 +00:00
Joel Sherrill
c589970ab1 re PR target/14480 (gcc/config/rs6000/t-rtems is missing)
2004-03-08  Joel Sherrill  <joel@oarcorp.com>

	PR target/14480
	* config/rs6000/t-rtems: Add missing file on branch.

From-SVN: r79140
2004-03-09 00:18:40 +00:00
GCC Administrator
6ec731401a Daily bump.
From-SVN: r79137
2004-03-09 00:16:12 +00:00
Jason Merrill
38b305d0a3 re PR c++/13170 (ICE in build_base_path)
PR c++/13170
        * decl.c (xref_tag): Remove attribute handling.
        * cp-tree.h: Adjust prototype.
        * decl.c, parser.c, rtti.c: Adjust callers.
        * parser.c (cp_parser_class_head): Pass back attributes in the
        class head.
        (cp_parser_class_specifier): Adjust.

From-SVN: r79129
2004-03-08 17:24:45 -05:00
Petur Runolfsson
5a66cfb2f1 re PR libstdc++/12658 (Thread safety problems in locale::global() and locale::locale())
2004-03-08  Petur Runolfsson  <peturr02@ru.is>

	PR libstdc++/12658
	* testsuite/22_locale/locale/cons/12658_thread.cc: New.

From-SVN: r79128
2004-03-08 22:11:47 +00:00
Roger Sayle
e697b20f79 re PR middle-end/14289 (ICE in a register array)
PR middle-end/14289
	* c-typeck.c (c_mark_addressable): A register variable should
	be considered global if its not automatic, i.e. TREE_PUBLIC,
	TREE_STATIC or DECL_EXTERNAL.
	* function.c (put_var_into_stack): Call abort when placing a
	hard register into the stack, if x_parm_reg_stack_loc is NULL.

	* gcc.dg/pr14289-1.c: New test case.
	* gcc.dg/pr14289-2.c: Likewise.
	* gcc.dg/pr14289-3.c: Likewise.

From-SVN: r79127
2004-03-08 21:56:36 +00:00
Ulrich Weigand
59f8a8be07 s390.md ("*extendqidi2_short_displ"): Add CC clobber.
* config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
	("*extendqisi2_short_displ"): Likewise.

From-SVN: r79124
2004-03-08 20:05:08 +00:00
Matt Austern
97b6d55b1b re PR debug/14079 (wrong debug info for extern boolean variable in debug mode)
PR debug/14079
* name-lookup.c (add_decl_to_level): Add extern variables, as well as static, to static_decls array.

From-SVN: r79122
2004-03-08 19:03:10 +00:00
Kazu Hirata
23bd99da2c pdp11.c (comparison_operator_index): Remove.
* config/pdp11/pdp11.c (comparison_operator_index): Remove.
	(comp_operator): Likewise.
	* config/pdp11/pdp11-protos.h: Remove corresponding
	prototypes.

From-SVN: r79116
2004-03-08 15:41:41 +00:00
Paolo Carlini
1d4eb925b9 howto.html: Add entry for DR 103 [WP].
2004-03-08  Paolo Carlini  <pcarlini@suse.de>

	* docs/html/ext/howto.html: Add entry for DR 103 [WP].
	* include/bits/stl_multiset.h: Add comment about DR 103.
	* include/bits/stl_set.h: Likewise.

From-SVN: r79114
2004-03-08 15:04:11 +00:00
Paolo Carlini
f1c89270e5 locale_facets.tcc (money_get<>::_M_extract): The value _space_ indicates that at least one space is required at that position.
2004-03-08  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.tcc (money_get<>::_M_extract):
	The value _space_ indicates that at least one space is required
	at that position.
	* testsuite/22_locale/money_get/get/char/17.cc: New.
	* testsuite/22_locale/money_get/get/wchar_t/17.cc: New.

	* testsuite/22_locale/money_get/get/char/7.cc: Minor tweaks.
	* testsuite/22_locale/money_get/get/wchar_t/7.cc: Likewise.

	* include/bits/locale_facets.tcc (money_get<>::do_get(long_double&)):
	Remove redundant conditional on __str.size().

From-SVN: r79111
2004-03-08 10:51:30 +00:00
Eric Botcazou
d50a16c433 expr.c (highest_pow2_factor_for_type): Rename into highest_pow2_factor_for_target.
* expr.c (highest_pow2_factor_for_type): Rename into
	highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
	TYPE_ALIGN when the target is a COMPONENT_REF.
	(expand_assignment): Ajust call to highest_pow2_factor_for_type.

From-SVN: r79101
2004-03-08 06:48:51 +00:00
Alan Modra
b1917422af rs6000.c: Formatting fix.
* config/rs6000/rs6000.c: Formatting fix.
	(legitimate_offset_address_p): Correct offset range check.

From-SVN: r79098
2004-03-08 14:54:27 +10:30
Alan Modra
957211c3f6 rs6000.c (rs6000_override_options): Don't override -msoft-float by -mcpu.
* config/rs6000/rs6000.c (rs6000_override_options): Don't override
	-msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
	and MASK_STRING.

From-SVN: r79094
2004-03-08 14:48:39 +10:30
Aldy Hernandez
97727e8573 rs6000.md (ashrdi3): Do not call ashrdi3_no_power for little endian.
* config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
        for little endian.
        ("ashrdi3_no_power"): Disable for little endian.
	(ashrdi3): Same.

From-SVN: r79092
2004-03-08 04:13:39 +00:00
Kaveh R. Ghazi
280e63ec66 fold-const.c (tree_expr_nonnegative_p): Reformat checks for builtins.
* fold-const.c (tree_expr_nonnegative_p): Reformat checks for
	builtins.

From-SVN: r79088
2004-03-08 01:55:44 +00:00
Hans-Peter Nilsson
682a45fc0d re PR target/14471 (Workaround for errata regarding multiplication bug)
PR target/14471
	* configure.ac (Target-specific assembler checks) <cris-*-*>: New
	case, checking for -no-mul-bug-abort option.
	* configure, config.in: Regenerate.
	* doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
	and -mno-mul-bug-workaround.
	* config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
	("mulsidi3", "umulsidi3"): Prefix output template with "%!".
	("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
	Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
	* config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
	sure mulu.d is not last on cache-line.
	* config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
	into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
	(TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
	(TARGET_SWITCHES): New options -mmul-bug-workaround and
	-mno-mul-bug-workaround.
	(TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
	(PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
	* config/cris/cris.c (cris_operand_extend_operator): Clarify
	relation to MULT in head comment.
	(cris_op_str): Abort for MULT.
	(cris_print_operand) <case '!'>: New case.

From-SVN: r79086
2004-03-08 00:38:31 +00:00
Hans-Peter Nilsson
86da66b593 re PR target/14471 (Workaround for errata regarding multiplication bug)
PR target/14471
	* configure.ac (Target-specific assembler checks) <cris-*-*>: New
	case, checking for -no-mul-bug-abort option.
	* configure, config.in: Regenerate.
	* doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
	and -mno-mul-bug-workaround.
	* config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
	("mulsidi3", "umulsidi3"): Prefix output template with "%!".
	("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
	Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
	* config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
	sure mulu.d is not last on cache-line.
	* config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
	into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
	(TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
	(TARGET_SWITCHES): New options -mmul-bug-workaround and
	-mno-mul-bug-workaround.
	(TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
	(PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
	* config/cris/cris.c (cris_operand_extend_operator): Clarify
	relation to MULT in head comment.
	(cris_op_str): Abort for MULT.
	(cris_print_operand) <case '!'>: New case.

From-SVN: r79085
2004-03-08 00:32:37 +00:00
Benjamin Kosnik
f5fb3886b2 allocator.h: Switch defaults to mt_alloc.
2004-03-08  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/allocator.h: Switch defaults to mt_alloc.

From-SVN: r79084
2004-03-08 00:27:37 +00:00
GCC Administrator
3bf92dad69 Daily bump.
From-SVN: r79081
2004-03-08 00:16:11 +00:00
Alan Modra
e7ee391439 re PR debug/11983 (ICE in dwarf-2 on code using altivec)
PR debug/11983
	* dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
	dw_val_class_vec.  Replace use throughout file.
	(dw_float_const): Delete.
	(dw_vec_const): New.
	(dw_val_struct_union): Rename val_float to val_vec.  Replace use
	throughout file.
	(add_AT_vec): Rename from add_AT_float.  Add elt_size param.
	(same_dw_val_p): Adjust vec comparison.  Use memcmp.
	(size_of_die): Adjust dw_val_class_vec sizing.
	(output_die): Output dw_val_class_vec.
	(insert_int, extract_int, insert_float): New functions.
	(add_const_value_attribute): Use insert_float for CONST_DOUBLE.
	Handle CONST_VECTOR.
	(add_location_or_const_value_attribute): Handle CONST_VECTOR.

From-SVN: r79077
2004-03-08 10:12:37 +10:30
Aldy Hernandez
5cc73f9121 rs6000.c (rs6000_parse_abi_options): SPE and AltiVec abi cannot co-exist.
2004-03-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
	AltiVec abi cannot co-exist.

	* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.

From-SVN: r79074
2004-03-07 23:35:43 +00:00
Jan Hubicka
a61bf17720 * except.c (emit_to_new_bb_before): Break fallthru edges.
From-SVN: r79071
2004-03-07 22:29:28 +00:00
Stephane Carrez
17c6094607 m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
* config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
	("*lshrsi3"): Also accept an immediate for 68HC12.
	("*ashrsi3_const"): Likewise.
	("*ashrsi3"): Likewise.
	("*ashlsi3_const"): Likewise.
	("*ashlsi3"): Likewise.
	("cmphi_1_hc12"): Compare two hard register by pushing them and
	comparing with a pop; don't use a split for that.
	("cmphi split"): Disable compare split for 68HC12.

	* config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
	the status operands if they have side effects.

From-SVN: r79068
2004-03-07 22:01:26 +01:00
Kazu Hirata
3e759edad2 defaults.h (LEGITIMIZE_ADDRESS): Provide a default definition.
* defaults.h (LEGITIMIZE_ADDRESS): Provide a default
	definition.
	* config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
	config/h8300/h8300.h, config/ia64/ia64.h,
	config/mcore/mcore.h, config/mmix/mmix.h,
	config/ns32k/ns32k.h, config/pdp11/pdp11.h,
	config/stormy16/stormy16.h, config/v850/v850.h,
	config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
	* doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
	definition.

From-SVN: r79066
2004-03-07 20:23:32 +00:00
Roger Sayle
cd2f1c7a62 fold-const.c (fold): Fold x | x as x.
* fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
	<XOR_EXPR>: Fold x ^ x as zero.
	<AND_EXPR>: Fold x & x as x.

From-SVN: r79065
2004-03-07 20:13:50 +00:00
Roger Sayle
350f4ea897 fold-const.c (fold): Rewrite optimization to transform "foo++ == const" into "++foo == const+incr".
* fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
	"foo++ == const" into "++foo == const+incr".

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

From-SVN: r79064
2004-03-07 14:45:42 +00:00
Andreas Jaeger
688556b9a7 test-demangle.c: Include <string.h> and <stdlib.h> for prototypes.
* testsuite/test-demangle.c: Include <string.h> and <stdlib.h> for
	prototypes.
	(main): Initialize style.

From-SVN: r79062
2004-03-07 15:25:51 +01:00
Richard Sandiford
9145559717 mips.c (mips_in_small_data_p): Return false if TARGET_ABICALLS.
* config/mips/mips.c (mips_in_small_data_p): Return false if
	TARGET_ABICALLS.

testsuite/
	* gcc.dg/torture/mips-sdata-1.c: Restrict to mips*-*-elf*.

From-SVN: r79060
2004-03-07 10:50:11 +00:00
Stephane Carrez
a75ea627dd m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push the stack register.
* config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
	the stack register.
	(expand_prologue): Don't make an interrupt or a trap handler a far
	symbol.
	(m68hc11_initial_elimination_offset): Likewise.

From-SVN: r79058
2004-03-07 11:00:30 +01:00
Richard Henderson
7179b6dbfe * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
From-SVN: r79054
2004-03-06 22:30:06 -08:00
Kazu Hirata
eff3c92666 ns32k-protos.h: Add a prototype for ns32k_notice_update_cc.
* config/ns32k/ns32k-protos.h: Add a prototype for
	ns32k_notice_update_cc.
	* config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
	* config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
	ns32k_notice_update_cc.

From-SVN: r79053
2004-03-07 04:45:05 +00:00
Ulrich Weigand
22ea6b4f7f s390.md ("load_multiple", [...]): Allow only if reload_completed.
ChangeLog:

	* config/s390/s390.md ("load_multiple", "*load_multiple_di",
	"*load_multiple_si"): Allow only if reload_completed.
	("store_multiple", "*store_multiple_di", "*store_multiple_si"):
	Likewise.

testsuite/ChangeLog:

	* gcc.dg/20040306-1.c: New test.

From-SVN: r79045
2004-03-07 02:41:53 +00:00
Benjamin Kosnik
c0bec71b82 mt_allocator.h (_S_initialize): If !__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.
2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>

	* include/ext/mt_allocator.h (_S_initialize): If
	!__GTHREAD_MUTEX_INIT, then initialize _S_thread_freelist_mutex.

From-SVN: r79044
2004-03-07 02:17:19 +00:00
Benjamin Kosnik
f83295bafc re PR libstdc++/12658 (Thread safety problems in locale::global() and locale::locale())
2004-03-06  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/12658
	* src/locale_init.cc (locale::locale): Lock critical regions with
	external mutexes.
	(locale::global): Same.
	* include/bits/concurrence.h (__glibcxx_mutex_define_initialized):
	Add in once bits for cases without __GTHREAD_MUTEX_INIT.
	(__glibcxx_mutex_lock): Same.

	* config/cpu/generic/atomicity.h: Remove
	_GLIBCXX_NEED_GENERIC_MUTEX, use concurrence.h.
	* src/misc-inst.cc: Move all locking bits out of this file.

	* config/os/hpux/os_defines.h: Remove _GLIBCXX_INST_ATOMICITY_LOCK.
	* src/misc-inst.cc: Same.
	* config/cpu/hppa/atomicity.h: Same.

	* config/linker-map.gnu: Remove types in the signature of atomic
	exports, as they may vary.

From-SVN: r79043
2004-03-07 01:32:43 +00:00
Kazu Hirata
018e1b3b0b sibcall-3.c (recurser_void1, [...]): Make them static.
* gcc.dg/sibcall-3.c (recurser_void1, recurser_void2): Make
	them static.
	* gcc.dg/sibcall-4.c (recurser_void1, recurser_void2): Likewise.

From-SVN: r79042
2004-03-07 00:59:25 +00:00
Eric Botcazou
75a65ed93c re PR c/14465 (insn-output.c:790: error: `asm_out_file' undeclared)
PR c/14465
	* gcc.dg/decl-6.c: New test.

From-SVN: r79038
2004-03-07 00:33:46 +00:00
GCC Administrator
679d316741 Daily bump.
From-SVN: r79035
2004-03-07 00:16:14 +00:00
Kazu Hirata
af0ec113b8 vax-protos.h: Add a prototype for vax_notice_update_cc.
* config/vax/vax-protos.h: Add a prototype for
	vax_notice_update_cc.
	* config/vax/vax.c (vax_notice_update_cc): New.
	* config/vax/vax.h (NOTICE_UPDATE_CC): Call
	vax_notice_update_cc.

From-SVN: r79032
2004-03-06 21:14:50 +00:00
David Edelsohn
aaef9b06ac collect2.c (main): Only export initfunc and finifunc if LD_INIT_SWITCH not defined.
* collect2.c (main): Only export initfunc and finifunc if
        LD_INIT_SWITCH not defined.
        (scan_prog_file): Only export constructors and destructors if
        LD_INIT_SWITCH not defined.  Only export symbols not found in
        shared objects.

From-SVN: r79031
2004-03-06 15:49:30 -05:00
John David Anglin
7a9a5a4441 pa.md (icacheflush): Reorder operands to make match_scratch operand last.
* pa.md (icacheflush): Reorder operands to make match_scratch operand
	last.
	* pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
	from calls to gen_icacheflush.

From-SVN: r79029
2004-03-06 19:27:52 +00:00
Richard Henderson
0f15adbd84 alpha.h (MASK_LONG_DOUBLE_128): New.
* config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
        (TARGET_LONG_DOUBLE_128): New.
        (TARGET_SWITCHES): Add long-double-{128,64}.
        (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
        (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
        (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
        (WIDEST_HARDWARE_FP_SIZE): New.
        (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
        * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
        if TARGET_VAX_FLOAT.
        * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
        (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.

From-SVN: r79026
2004-03-06 10:48:51 -08:00