* params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
(PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
types or not.
* params.h (VERIFY_CANONICAL_TYPES): Remove.
(USE_CANONICAL_TYPES): New.
* doc/invoke.texi (verify-canonical-types): Remove.
(use-canonical-types): Add.
2007-07-11 Douglas Gregor <doug.gregor@gmail.com>
* typeck.c (comptypes): When USE_CANONICAL_TYPES, use the
canonical types; otherwise, fall back to structural type
comparisons. If ENABLE_CHECKING and USE_CANONICAL_TYPES, give an
internal compiler error if the canonical types are wrong.
Paolo Carlini [Wed, 11 Jul 2007 10:23:56 +0000 (10:23 +0000)]
re PR middle-end/30482 (<complex> division by 0)
2007-07-11 Paolo Carlini <pcarlini@suse.de>
PR middle-end/30482
* c-opts.c (c_common_post_options): Do not change flag_complex_method
conditional to flag_isoc99.
(c_common_init_options): Do it here, unconditionally.
Eric Botcazou [Wed, 11 Jul 2007 09:43:25 +0000 (09:43 +0000)]
re PR tree-optimization/32589 (exp_dbug.adb:981: error: invalid array index)
PR tree-optimization/32589
* doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
* tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
* tree-ssa-propagate.c (valid_gimple_expression_p): New
predicate, extracted from...
(set_rhs): ...here. Call it for the expression on entry.
* tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
* tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
(simplify_binary_expression): Use valid_gimple_expression_p
to validate the simplification.
* Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
Danny Smith [Wed, 11 Jul 2007 09:37:18 +0000 (09:37 +0000)]
cygming.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2_DEBUG on 32 bit target too.
* config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
DWARF2_DEBUG on 32 bit target too.
(DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition.
Richard Guenther [Wed, 11 Jul 2007 09:19:58 +0000 (09:19 +0000)]
trans-array.c (gfc_conv_array_parameter): Use correct types for comparison.
2007-07-11 Richard Guenther <rguenther@suse.de>
* trans-array.c (gfc_conv_array_parameter): Use correct
types for comparison.
* trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use
correct types for POINTER_PLUS_EXPR.
* trans-stmt.c (gfc_trans_forall_loop): Use correct type
for integer one constant.
re PR bootstrap/32617 (explow.c references DECL_ALIGN of a FUNCTION_DECL)
2007-07-09 Geoffrey Keating <geoffk@apple.com>
PR 32617
* c-common.c (c_alignof_expr): Look at DECL_ALIGN of
FUNCTION_DECLs.
(handle_aligned_attribute): Allow use on FUNCTION_DECLs.
* varasm.c (assemble_start_function): Honor DECL_ALIGN
for FUNCTION_DECLs. Don't use align_functions_log if
DECL_USER_ALIGN.
* print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
even for FUNCTION_DECLs.
* c-decl.c (merge_decls): Propagate DECL_ALIGN even for
FUNCTION_DECLs.
* tree.h (DECL_ALIGN): Update for new location of 'align'.
(DECL_FUNCTION_CODE): Update for new location and name of
'function_code'.
(DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
(struct tree_decl_common): Move 'align' and 'off_align' out
of union, ensure they're still on a 32-bit boundary. Remove
other fields in union 'u1'.
(struct tree_function_decl): Add field 'function_code' replacing
'u1.f' in tree_decl_common.
* tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
* doc/extend.texi (Function Attributes): Add 'aligned' attribute.
(Variable Attributes): Cross-reference 'aligned' attribute
to Function Attributes.
* flags.h (force_align_functions_log): Delete.
* toplev.c (force_align_functions_log): Delete.
PR 32617
* lang.c (java_init): Remove setting of force_align_functions_log.
* class.c (add_method_1): Set DECL_ALIGN of non-static method
to cope with ptrmemfunc_vbit_in_pfn.
PR 32617
* decl.c (cxx_init_decl_processing): Don't set
force_align_functions_log.
(grokfndecl): Honour ptrmemfunc_vbit_in_pfn.
* typeck.c (cxx_alignof_expr): When alignof is used on a plain
FUNCTION_DECL, return its alignment.
Jerry DeLisle [Tue, 10 Jul 2007 05:37:29 +0000 (05:37 +0000)]
re PR libfortran/32702 (crash when printing big character variable)
2007-07-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/32702
* io/unix.c (unix_stream): Restore buffer pointer and small_buffer.
(fd_alloc): If the number of bytes needed is greater than the default
BUFFER_SIZE, allocate a new buffer large enough. Free the old buffer if
necessary. (fd_sfree): Restore use of buffer pointer.
(fd_close): Likewise. (fd_open): Likewise.
(init_error_stream): Likewise.
Paul Thomas [Tue, 10 Jul 2007 05:11:00 +0000 (05:11 +0000)]
re PR fortran/32157 (intrinsic function name conflicts with subroutine if present in the same file)
2007-07-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/32157
* resolve.c (is_external_proc): New function. Adds test that
the symbol is not an intrinsic procedure.
* (resolve_function, resolve_call): Replace logical statements
with call to is_external_proc.
PR fortran/32689
* simplify.c (gfc_simplify_transfer): If mold has rank, the
result is an array.
PR fortran/32634
* module.c (write_generic): Write the local name of the
interface.
2007-07-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/32157
* gfortran.dg/overload_2.f90: New test.
re PR fortran/29459 (Spurious warnings about anonymous variables)
PR fortran/29459
* trans-array.c (gfc_trans_array_constructor): Mark offset field
with TREE_NO_WARNING.
* trans-decl.c (gfc_build_qualified_array): Mark lbound, ubound,
stride and size variables with TREE_NO_WARNING.
2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>
* optabs.h: Added declaration for signbit_optab.
* optabs.c: (init_optabs): Added initialization for signbit_optab.
* genoptinit.c (optabs): Added entry for signbit insns.
* builtins.c (expand_builtin_signbit): Added code to use a signbit insn,
if available.
* config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.
* config/s390/s390.md (signbit<mode>2): New expander.
re PR tree-optimization/32681 (ice for legal C code with flags -ffast-math -O3 -ftree-vectorize)
PR tree-optimization/32681
* tree-if-conv.c (find_phi_replacement_condition): Use the condition
saved in second_edge->aux when first_bb is a loop header.
testsuite/ChangeLog:
PR tree-optimization/32681
* gcc.dg/tree-ssa/pr32681.c: New test.
re PR testsuite/25241 ([C++] DejaGNU does not distinguish between errors and warnings)
2007-07-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR testsuite/25241
testsuite/
* gcc.dg/20041213-1.c: Don't use default -pedantic-errors to allow
discern pedantic diagnostics and errors.
* gcc.dg/empty2.c: Add -pedantic, so it actually produces a warning
and not an error.
* gcc.dg/20050121-1.c: This is an error and not a warning.
* gcc.target/i386/sseregparm-2.c: Likewise.
* gcc.target/i386/20060512-4.c: This is a warning and not an error.
* gcc.dg/charset/attribute2.c: Likewise.
* gcc.dg/bitfld-1.c: Likewise.
* gcc.dg/pack-test-2.c: Likewise.
* gcc.dg/940510-1.c: Match separately error and warning.
* gcc.dg/array-2.c: Match separately multiple messages. The second
diagnostic is a pedantic warning and not an error.
* gcc.dg/pr14475.c: Match separately multiple messages.
* gcc.dg/pr18809-1.c: Likewise.
* gcc.dg/pr27953.c: Likewise.
* gcc.dg/vla-init-1.c: Likewise.
* gcc.dg/redecl-1.c: Fix wrong use of dg-error and dg-warning.
Daniel Berlin [Sat, 7 Jul 2007 22:23:26 +0000 (22:23 +0000)]
Revert (note the sccvn portions are *not* reverted) 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
2007-07-07 Daniel Berlin <dberlin@dberlin.org>
Revert (note the sccvn portions are *not* reverted)
2007-07-06 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/23488
* tree-vn.c (set_value_handle): Use decl_vh_map for decl value
handles.
* tree-flow-inline.h (get_value_handle): Ditto.
* tree-ssa-pre.c (decl_vh_map): New.
(decl_node_pool): New.
(can_value_number_operation): Support DECL_P.
(can_PRE_operation): Ditto.
(create_expression_by_pieces): Ditto.
(find_existing_value_expr): Modify to differnetiate between
addressing and top level.
(create_value_handle_for_expr): Handle DECL's.
(poolify_tree): Ditto.
(make_values_for_phi): Don't insert into PHI_GEN during FRE.
(make_values_for_stmt): Handle DECL's properly.
(init_pre): Reorg to not init useless things during FRE.
(fini_pre): Ditto.
* tree-flow.h: Include pointer-set.h.
(decl_vh_map): Declare.
* Makefile.in (TREE_FLOW_H): Add pointer-set.h
* tree-ssa-operands.c (realloc_vop, realloc_vdef,
realloc_vuse): Remove.
* tree-ssa-operands.h: Remove the prototype for realloc_vdef
and realloc_vuse.
* gcc.dg/20001012-1.c: Run on all fpic-capable targets.
* gcc.dg/20001012-2.c: Likewise.
* gcc.dg/tls/opt-7.c: Require an fpic-capable target.
* gcc.dg/20000222-1.c: Add -fPIC on all fpic-capable targets.
* configure.ac: Include ../config/enable.m4 and
../config/tls.m4. Use GCC_CHECK_CC_TLS to check if assembler
supports TLS and substitute set_have_cc_tls.
* configure: Regenerated.
libbid/
2007-07-06 H.J. Lu <hongjiu.lu@intel.com>
Updated from Intel BID library:
* bid_conf.h (BID_THREAD): Defined only if both HAVE_CC_TLS
and USE_TLS are defined.
Daniel Franke [Fri, 6 Jul 2007 12:37:22 +0000 (08:37 -0400)]
re PR fortran/32633 (bogus error)
gcc/fortran:
2007-05-06 Daniel Franke <franke.daniel@gmail.com>
PR fortran/32633
* symbol.c (save_status): New.
* gfortran.h (save_status): Added external declaration.
(check_conflict): Check for conflicting explicite SAVE statements
only.
(gen_special_c_interop_ptr): Use SAVE_EXPLICIT constant.
* module.c (ab_attribute, attr_bits): Removed enumerator value
AB_SAVE for save attribute.
(mio_symbol_attribute): Import/export the full SAVE status,
removed usage of AB_SAVE.
* dump-parse-tree.c (gfc_show_attr): Dump full SAVE status.
* decl.c (add_init_expr_to_sym): Set SAVE_IMPLICIT only if not
already explicit.
gcc/testsuite:
2007-07-06 Daniel Franke <franke.daniel@gmail.com>
* gfortran.dg/save_parameter.f90: New test.
* gfortran.dg/module_md5_1.f90: Updated MD5 sum.
gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over TYPE_ARG_TYPES for verification of argument types.
2007-07-06 Richard Guenther <rguenther@suse.de>
* gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
TYPE_ARG_TYPES for verification of argument types. Use
DECL_ARG_TYPE instead of the PARM_DECL type. Take excess
parameters as variable arguments.
Andreas Krebbel [Fri, 6 Jul 2007 10:47:31 +0000 (10:47 +0000)]
libgcc2.h (word_type): Type definition removed.
2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
* libgcc2.h (word_type): Type definition removed.
(cmp_return_type, shift_count_type): Type definitions added.
(__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
replaced with shift_count_type.
(__cmpdi2, __ucmpdi2): word_type of return type replaced with
cmp_return_type.
* libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
changed from word_type to Wtype.
(__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
replaced with shift_count_type.
(__cmpdi2, __ucmpdi2): word_type of return type replaced with
cmp_return_type.
* c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return and
libgcc_shift_count attribute added.
* target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
(TARGET_INITIALIZER): New target hooks added.
* targhooks.c (default_libgcc_cmp_return_mode,
default_libgcc_shift_count_mode): Default implementations for the new
target hooks added.
* targhooks.h (default_libgcc_cmp_return_mode,
default_libgcc_shift_count_mode): Function prototypes added.
* target.h (struct gcc_target): Fields for the new target hooks added.
* optabs.c (expand_binop): Use shift_count_mode when expanding shift
as library call.
(prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
library call.
mips.c (compute_frame_size): Restore the original gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove...
gcc/
* config/mips/mips.c (compute_frame_size): Restore the original
gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
Document why the difference is needed.
mips.c (mips16e_save_restore_pattern_p): Check that the topmost argument register is not also included in the save mask.
gcc/
* config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
the topmost argument register is not also included in the save mask.
(mips16e_collect_argument_save_p): Take a pointer to the argument
register, rather than a pointer to the number of arguments.
(mips16e_collect_argument_saves): Only include argument saves
that aren't in the register mask.
gcc/testsuite/
* gcc.target/mips/save-restore-5.c: New test.
re PR rtl-optimization/32450 (-pg causes miscompilation)
PR rtl_optimization/32450
* function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
to ensure that instructions are not moved into the prologue when
profiling is on. Remove unused prologue_end variable.
(expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
as a scheduling barrier.
testsuite/ChangeLog:
PR rtl_optimization/32450
* gcc.dg/pr32450.c: New runtime test.