(last_function_parm_others, current_function_parms)
(current_function_parm_tags, current_function_parm_others):
Delete.
(ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
New macros.
(grokdeclarator): For function definitions, save the arg-info
block from the declarator in DECL_ARGUMENTS.
(grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
macros to operate on arg-info block. Can assume ARG_INFO_PARMS
contains only PARM_DECLs. Improve diagnostics.
(get_parm_info): Use ARG_INFO_* macros. Improve comments and
diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
(store_parm_decls_newstyle): Take the function to operate on,
and an arg-info block, as arguments; don't get anything from
current_function_* globals.
(store_parm_decls_oldstyle): Likewise.
(store_parm_decls): Pass fndecl and its arg-info block down to
store_parm_decls_newstyle/oldstyle. Send functions with empty
argument lists through store_parm_decls_newstyle to reduce
overhead.
(pushdecl): Comment on the problems with the call to copy_node.
Clear DECL_ARGUMENTS of the old node after copying it, if it
is an arg-info block instead of a chain of decls.
(start_function): Do not manipulate current_function_parm* or
last_function_parm*.
* testsuite/gcc.dg/noncompile/incomplete-2.c: Move dg-error to
proper line.
From-SVN: r79206
* ifcvt.c (noce_try_sign_mask): New function to transform
"x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
(noce_process_if_block): Call noce_try_sign_mask.
* gcc.c-torture/execute/20040309-1.c: New test case.
Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
From-SVN: r79205
* java/lang/Thread.java
(runnable): Moved around.
(daemon): Renamed from daemon_flag.
(contextClassLoader): Renamed from context_class_loader.
(Thread): Reordered constructors.
(activeCount): Use group directly.
(destroy): Make it a java method. Throw NoSuchMethodError like Sun does.
(holdsLock): Reworked javadoc.
(setDaemon): Reworked.
* java/lang/natThread.cc
(destroy): Removed.
From-SVN: r79200
PR c++/14409
* pt.c (determine_specialization): For member templates, match also
constness.
PR c++/14448
* parser.c (cp_parser_initializer_clause): Fold initializer if it is
non-dependent.
* pt.c (tsubst_copy_and_build): Handle NOP_EXPRs.
PR c++/14409
* g++.dg/template/spec12.C: New test.
PR c++/14448
* g++.dg/parse/crash14.C: New test.
From-SVN: r79172
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-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
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 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 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
* 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
* 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
* 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
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
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
* 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