Nathan Sidwell [Wed, 12 Oct 2005 10:59:27 +0000 (10:59 +0000)]
re PR c++/19964 (ICE on invalid member declaration)
PR c++/19964
* stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
type.
cp:
PR c++/19964
* cp/class.c (walk_subobject_offsets): Don't walk error_mark_node.
testsuite:
PR c++/19964
* g++.dg/parse/crash31.C: New.
Razya Ladelsky [Wed, 12 Oct 2005 09:31:34 +0000 (09:31 +0000)]
ipa-1.c: New test.
* gcc.dg/ipa/ipa-1.c: New test.
* gcc.dg/ipa/ipa-2.c: New test.
* gcc.dg/ipa/ipa-3.c: New test.
* gcc.dg/ipa/ipa-4.c: New test.
* gcc.dg/ipa/ipa-5.c: New test.
* gcc.dg/ipa/ipa.exp: New file.
Jakub Jelinek [Wed, 12 Oct 2005 06:18:12 +0000 (08:18 +0200)]
trans-common.c (build_field): Fix comment typo.
* trans-common.c (build_field): Fix comment typo.
(create_common): Set backend_decl of COMMON or EQUIVALENCEd
variables to a VAR_DECL with the COMPONENT_REF in
DECL_HAS_VALUE_EXPR rather than COMPONENT_REF directly.
* f95-lang.c (gfc_expand_function): Emit debug info for
EQUIVALENCEd variables if the equiv union is going to be output.
Ian Lance Taylor [Tue, 11 Oct 2005 23:45:54 +0000 (23:45 +0000)]
re PR rtl-optimization/13931 (combiner much slower on big basic blocks)
PR rtl-optimization/13931
* combine.c: Revert patch of 2003-05-14, and:
(try_combine): Only set elim_i1 and elim_i2 if the destination is
completely killed in the appropriate insn.
(distribute_notes): Don't skip multiple hard register test for
elim_i1 and elim_i2.
Steven G. Kargl [Tue, 11 Oct 2005 23:35:27 +0000 (23:35 +0000)]
re PR libfortran/24313 (complex sqrt function does not return principal value)
PR libgfortran/24313
* c99_functions.c (csqrtf, csqrt): Fix choice of branch cut. Note
csqrt{f} were imported from glibc, and this bug is still present
there. glibc PR is 1146.
Mark Mitchell [Tue, 11 Oct 2005 20:58:46 +0000 (20:58 +0000)]
re PR c++/21089 (C++ front-end does not "inline" the static const double)
PR c++/21089
* call.c (convert_like_real): Use decl_constant_value, not
integral_constant_value.
* init.c (constant_value_1): New function.
(integral_constant_value): Use it.
(decl_constant_value): Likewise.
* typeck.c (decay_conversion): Use decl_constant_value, not
integral_constant_value.
PR c++/21089
* g++.dg/init/float1.C: New test.
re PR tree-optimization/24300 (segfault in operand_equal_p with -ftree-vectorize)
PR tree-opt/24300
* Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
* tree-ssa-dce.c: Include cfgloop.h.
(tree_ssa_dce_loop, pass_dce_loop): New.
* tree-pass.h (pass_dce_loop): Declare it.
* passes.c (init_optimization_passes): Use it.
Eric Botcazou [Tue, 11 Oct 2005 18:14:57 +0000 (20:14 +0200)]
re PR middle-end/24263 (gcc.dg/torture/builtin-convert-1.c fails)
PR middle-end/24263
* convert.c (convert_to_real): Revert 2005-10-05 patch.
Only apply the optimization for rounding builtins if the inner
cast is also an extension.
Mark Mitchell [Tue, 11 Oct 2005 16:38:52 +0000 (16:38 +0000)]
re PR c++/21369 (Template function definition rejected if function return type begins with 'struct')
PR c++/21369
* parser.c (cp_parser_elaborated_type_specifier): Don't treat
class types as templates if the type is not appearing as part of a
type definition or declaration.
PR c++/21369
* g++.dg/parse/ret-type3.C: New test.
Steve Ellcey [Mon, 10 Oct 2005 23:45:18 +0000 (23:45 +0000)]
re PR target/12098 (gcc build fails without gas on ia64-hpux: error: invalid switch '-x')
PR target/12098
* configure.ac: Move gas check from mips specific case to common case.
Do check for GNU as for mips*-*-* and *-*-hpux* targets.
* configure: Regenerate
* doc/install.texi: Update.
Mark Mitchell [Mon, 10 Oct 2005 22:30:17 +0000 (22:30 +0000)]
Mark Mitchell <mark@codesourcery.com> PR c++/23437
Mark Mitchell <mark@codesourcery.com>
PR c++/23437
* parser.c (cp_parser_template_argument_list): Do not treat
contents of argument list as part of a constant expression.
PR c++/23437
* g++.dg/template/arg4.C: New test.
Mark Mitchell [Mon, 10 Oct 2005 14:42:14 +0000 (14:42 +0000)]
re PR c++/24275 (Previously accepted code fails with 4.0.2)
PR c++/24275
* pt.c (instantiate_decl): Instantiate the initializer of
a static data member in the namespace containing the class
containing the static data member.
PR c++/24275
* g++.dg/template/static19.C: New test.
Mark Mitchell [Mon, 10 Oct 2005 14:41:52 +0000 (14:41 +0000)]
re PR c++/24139 (Rejects definition of member of specialized inner class)
PR c++/24139
* decl.c (grokdeclarator): Do not require template parameter lists
for explicitly specialized class.
* error.c (dump_aggr_type): Do not dump template arguments for
non-primary specializations.
(dump_function_name): Likewise.
PR c++/24139
* g++.dg/template/spec27.C: New test.
Paolo Carlini [Sun, 9 Oct 2005 10:34:47 +0000 (10:34 +0000)]
PR libstdc++/24061 (issue 6.19)
2005-10-09 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/24061 (issue 6.19)
* include/tr1/hashtable (struct node_const_iterator, struct
hashtable_const_iterator): New, add const variants to enable separate
overloadings for iterator and const_iterator in unordered_set and
unordered_multiset (as required by issue 6.19).
(class hashtable): Change the mutable_iterators template parameter
to constant_iterators and adjust throughout the logic.
(hashtable::insert(iterator, const value_type&), erase(iterator)
erase(iterator, iterator)): New, as per issue 6.19.
(hashtable::m_erase(node*, node**)): New, called by erase(iterator)
and erase(const_iterator).
(hashtable::Insert_Conv_Type): New, used by insert(iterator,
const value_type&) and insert(const_iterator, const value_type&)
to delegate the work to insert(const value_type&).
* include/tr1/unordered_map (class unordered_map, unordered_multimap):
Adjust typedefs.
* include/tr1/unordered_set (class unordered_set, unordered_multiset):
Likewise.
* testsuite/tr1/6_containers/unordered/erase/24061-map.cc: New.
* testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc: New.
* testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc: New.
* testsuite/tr1/6_containers/unordered/erase/24061-set.cc: New.
* testsuite/tr1/6_containers/unordered/insert/24061-map.cc: New.
* testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc: New.
* testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc: New.
* testsuite/tr1/6_containers/unordered/insert/24061-set.cc: New.
Andrew Pinski [Sat, 8 Oct 2005 21:41:50 +0000 (21:41 +0000)]
[multiple changes]
2005-10-08 Andrew Pinski <pinskia@physics.uc.edu>
PR target/24136
* config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
Rewrite for no need for the early clobber.
2005-10-07 Andrew Pinski <pinskia@physics.uc.edu>
PR target/24136
* gfortran.fortran-torture/compile/pr24136.f: New test.
Kazu Hirata [Sat, 8 Oct 2005 18:17:20 +0000 (18:17 +0000)]
configure.in (arm-*-linux-gnueabi): Add to noconfigdirs target-libffi...
/
* configure.in (arm-*-linux-gnueabi): Add to noconfigdirs
target-libffi, target-qthreads, target-libjava, and
targetlibobjc.
* configure: Regenerate.
gcc/
Merge from csl-arm-branch:
2005-09-07 Paul Brook <paul@codesourcery.com>
* config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
space to string.
2005-03-07 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.c (arm_all_abis): Add aapcs-linux.
(arm_override_options): Use TARGET_AAPCS_BASED.
* config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
(PTRDIFF_TYPE): Use int for AAPCS.
(DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
* config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
(DEFAULT_SHORT_ENUMS): Delete.
* doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
2004-12-15 Daniel Jacobowitz <dan@codesourcery.com>
* config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
* config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
* config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
2004-12-03 Mark Mitchell <mark@codesourcery.com>
* config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
2004-11-22 Mark Mitchell <mark@codesourcery.com>
* config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
2004-11-19 Mark Mitchell <mark@codesourcery.com>
* config.gcc (arm*-*-linux-gnueabi): Add it.
* config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
redefining it.
(TARGET_OS_CPP_BUILTINS): Likeiwse.
* config/arm/linux-eabi.h: New file.
* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
(LINUX_TARET_LINK_SPEC): Likewise.
(LINK_SPEC): Use it.
* config/arm/t-linux-eabi: New file.
libcpp/
* configure.ac: Require 64-bit int for arm*-*-*eabi*.
* configure: Regenerate.
libstdc++/
Merge from csl-arm-branch:
2004-12-15 Daniel Jacobowitz <dan@codesourcery.com>
* libstdc++-v3/config/linker-map.gnu: Add ARM EABI symbols.
Janne Blomqvist [Fri, 7 Oct 2005 20:02:28 +0000 (23:02 +0300)]
re PR libfortran/16339 (Unformatted i/o on large arrays inefficient)
2005-10-07 Janne Blomqvist <jblomqvi@cc.hut.fi>
PR fortran/16339
PR fortran/23363
* io/io.h: Add read and write members to stream, define access
macros.
* io/transfer.c (read_block_direct): New function.
(write_block_direct): New function.
(unformatted_read): Change to use read_block_direct.
(unformatted_write): Change to use write_block_direct.
* io/unix.c: Remove mmap includes and defines.
(writen): Remove.
(readn): Remove.
(reset_stream): New function.
(do_read): New function.
(do_write): New function.
(fd_flush): Change to use do_write() instead of writen().
(fd_alloc_r_at): Change to use do_read().
(fd_seek): Change return type to try, as the prototype. Add check
to avoid syscall overhead if possible.
(fd_read): New function.
(fd_write): New function.
(fd_open): Set pointers for new functions.
(mem_read): New function.
(mem_write): New function.
(open_internal): Set pointers for new functions.
(is_seekable): Clean up comment.
re PR middle-end/24227 (ICE in compare_values, at tree-vrp.c:415)
2005-10-07 Richard Guenther <rguenther@suse.de>
PR middle-end/24227
* fold-const.c (fold_binary): Fix operand types during folding
of X op (A, Y). Evaluation order of the side-effects of
X and A are frontend-defined, so ensure we honour that even for
tcc_comparison class operands; eased by removing duplicate code.
Jerry DeLisle [Fri, 7 Oct 2005 17:01:48 +0000 (17:01 +0000)]
transfer.c (write_block): Add test for end-of-file condition, removed from mem_alloc_w_at.
2005-10-07 Jerry DeLisle <jvdelisle@verizon.net>
* io/transfer.c (write_block): Add test for end-of-file condition,
removed from mem_alloc_w_at. (next_record_w): Clean up checks for
NULL pointer returns from s_alloc_w.
* io/unix.c (mem_alloc_w_at): Remove call to generate_error end-of-file.
* io/write.c (write_float): Add checks for NULL pointer returns from
write_block calls. (write_integer): Same.
Paolo Carlini [Fri, 7 Oct 2005 15:55:17 +0000 (15:55 +0000)]
Fix libstdc++/24196 for ext/vstring/rc by returning to the behavior of basic_string pre-2003-06-13...
2005-10-07 Paolo Carlini <pcarlini@suse.de>
Fix libstdc++/24196 for ext/vstring/rc by returning to the behavior
of basic_string pre-2003-06-13; remove fully-dynamic-string stuff.
* include/ext/rc_string_base.h (_M_refcopy): Move inside the
_Rep class and remove code in macro.
(__rc_string_base()): Construct with _S_empty_rep()._M_refcopy().
(_M_dispose, _M_leak_hard): Remove code in macro.
(_S_construct): Return _S_empty_rep()._M_refcopy() for empty string.
(_M_grab): Adjust.
* include/ext/rc_string_base.h (_Rep::_M_refdata()): Minor tweak,
mark throw().
Erik Edelmann [Thu, 6 Oct 2005 15:44:01 +0000 (18:44 +0300)]
re PR fortran/18568 (pointers in derived data types do not transmit shape of pointed to arrays - bug or non-standard feature?)
2005-10-07 Erik Edelmann <erik.edelmann@iki.fi>
fortran/
PR 18568
* resolve.c (find_array_spec): Search through the list of
components in the symbol of the type instead of the symbol of the
variable.
testsuite/
PR 18568
* gfortran.dg/der_pointer_3.f90: New test.
re PR middle-end/24049 (compiler error: Segmentation fault In function 'DESX_CBCUpdate')
PR 24049
* passes.c (init_optimization_passes): Move pass_lower_vector_ssa
under pass_vectorize. Clear TODO_ggc_collect from the dce pass
under pass_vectorize.
* include/ext/sso_string_base.h (struct __sso_string_local):
Remove, actually POD types cannot have user defined constructors
(being aggregates) and therefore can always be members of unions.
(class __sso_string_base): Adjust consistently.
Paolo Carlini [Wed, 5 Oct 2005 19:11:18 +0000 (19:11 +0000)]
re PR libstdc++/24198 (Remove from the testsuite gnu_char_type (or fix it))
2005-10-05 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/24198
* testsuite/27_io/basic_filebuf/3.cc: Use __gnu_test::pod_ushort
instead.
* testsuite/27_io/basic_filebuf/seekoff/10132-2.cc: Likewise.
* testsuite/27_io/basic_filebuf/seekpos/10132-3.cc: Likewise.
* testsuite/27_io/basic_fstream/3.cc: Likewise; run the test.
* testsuite/27_io/basic_ifstream/3.cc: Likewise; run the test.
* testsuite/27_io/basic_ios/3.cc: Likewise.
* testsuite/27_io/basic_iostream/3.cc: Likewise; run the test.
* testsuite/27_io/basic_istream/3.cc: Likewise; run the test.
* testsuite/27_io/basic_istringstream/3.cc: Likewise; run the test.
* testsuite/27_io/basic_ofstream/3.cc: Likewise; run the test.
* testsuite/27_io/basic_ostream/3.cc: Likewise; run the test.
* testsuite/27_io/basic_ostringstream/3.cc: Likewise; run the test.
* testsuite/27_io/basic_streambuf/3.cc: Likewise.
* testsuite/27_io/basic_stringbuf/3.cc: Likewise.
* testsuite/27_io/basic_stringstream/3.cc: Likewise; run the test.