* tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
Update constant estimates of number of iterations.
(record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
argument renamed to "realistic".
(compute_estimated_nb_iterations): Removed.
(record_niter_bound): New function.
(idx_infer_loop_bounds): For possible but unlikely tail arrays,
call record_nonwrapping_iv with upper = false.
(infer_loop_bounds_from_signedness): Pass upper argument to
record_nonwrapping_iv.
(estimate_numbers_of_iterations_loop): Do not call
compute_estimated_nb_iterations. Record estimate based on profile
information. Initialize the constant estimates of number of
iterations.
* tree-data-ref.c (estimated_loop_iterations): Return the recorded
estimates.
* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
number of iterations is too small.
* cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
(EST_NOT_AVAILABLE): Removed.
(struct loop): Replace estimated_nb_iterations by any_upper_bound,
nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
fields.
re PR c++/30891 (poor diagnostic with namespace in the function scope)
2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/30891
cp/
* parser.c (cp_parser_statement): If 'namespace' is found, this
only can be a namespace alias definition, so parse it now.
(cp_parser_namespace_alias_definition): if we find an open brace
instead of '=', then this is actually a misplaced namespace
definition.
testsuite/
* g++.dg/parse/namespace-definition.C: New.
re PR c++/24924 (front end and preprocessor pedantic_errors settings should agree)
2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/24924
* c-opts.c (c_common_post_options): Handle C++ post-processing here.
Set also -pedantic-errors by default for the preprocessor unless
-fpermissive is given.
cp/
* decl.c (cxx_init_decl_processing): Move command-line options
processing to c-opts.c.
testsuite/
* g++.dg/cpp/pedantic-errors.C: New.
* g++.dg/cpp/permissive.C: New.
Richard Guenther [Thu, 15 Mar 2007 20:14:49 +0000 (20:14 +0000)]
re PR middle-end/29719 (newlib targets ICEs in expand_builtin_int_roundingfn)
2007-03-15 Richard Guenther <rguenther@suse.de>
PR middle-end/29719
PR middle-end/31161
* builtins.c (expand_builtin_int_roundingfn): Always fall
back to floor/ceil and its variants even if they may be
not available.
(expand_builtin_cexpi): As a fallback if we
don't have builtins for sincos or cexp create a function
declaration for cexp and expand to a call to that.
Steven Bosscher [Thu, 15 Mar 2007 20:08:29 +0000 (20:08 +0000)]
cfglayout.c (fixup_reorder_chain): Postpone deleting dead jump tables...
* cfglayout.c (fixup_reorder_chain): Postpone deleting dead
jump tables, move the call to delete_dead_jumptables from here...
(cfg_layout_finalize): ...to here. But rebuild jump labels first.
* cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
don't allow merging of blocks that try_redirect_by_replacing_jump
also does not handle when not optimizing.
Douglas Gregor [Thu, 15 Mar 2007 13:51:09 +0000 (13:51 +0000)]
ptree.c (cxx_print_type): Use formatting markup for integers when printing template parameter...
2007-03-15 Douglas Gregor <doug.gregor@gmail.com>
* ptree.c (cxx_print_type): Use formatting markup for integers
when printing template parameter index/level/orig level.
(cxx_print_xnode): Ditto.
* cp-tree.h (TEMPLATE_PARM_PARAMETER_PACK): Use TREE_LANG_FLAG_0.
(struct template_parm_index_s): Remove the PARAMETER_PACK member.
Make INDEX, LEVEL, and ORIG_LEVEL integers instead of
HOST_WIDE_INTs.
(struct saved_scope): Make X_PROCESSING_TEMPLATE_DECL an int,
rather than a HOST_WIDE_INT.
Turn X_PROCESSING_EXPLICIT_INSTANTIATION, SKIP_EVALUATION, and
NEED_POP_FUNCTION_CONTEXT into bool bitfields; reorder fields for
better bit-packing.
(struct language_function): Make RETURNS_VALUE, RETURNS_NULL,
RETURNS_ABNORMALLY, IN_FUNCTION_TRY_HANDLER, and
IN_BASE_INITIALIZER bool bitfields.
(struct cp_declarator): Make KIND a 4-bit field. Make
PARAMETER_PACK_P a bool bitfield just after KIND.
* pt.c (uses_parameter_packs): Destroy the pointer set.
(make_pack_expansion): Ditto.
(check_for_bare_parameter_packs): Ditto.
* name-lookup.c (push_to_top_level): Make need_pop a bool value.
* gfortran.h (gfc_option_t): Add flag_backtrace field.
* lang.opt: Add -fbacktrace option.
* invoke.texi: Document the new option.
* trans-decl.c (gfc_build_builtin_function_decls): Add new
option to the call to set_std.
* options.c (gfc_init_options, gfc_handle_option): Handle the
new option.
* runtime/backtrace.c: New file.
* runtime/environ.c (variable_table): New GFORTRAN_ERROR_BACKTRACE
environment variable.
* runtime/compile_options.c (set_std): Add new argument.
* runtime/main.c (store_exe_path, full_exe_path): New functions.
* runtime/error.c (sys_exit): Add call to show_backtrace.
* libgfortran.h (options_t): New backtrace field.
(store_exe_path, full_exe_path, show_backtrace): New prototypes.
* configure.ac: Add checks for execinfo.h, execvp, pipe, dup2,
close, fdopen, strcasestr, getrlimit, backtrace, backtrace_symbols
and getppid.
* Makefile.am: Add runtime/backtrace.c.
* fmain.c (main): Add call to store_exe_path.
* Makefile.in: Renegerate.
* config.h.in: Renegerate.
* configure: Regenerate.
Uros Bizjak [Thu, 15 Mar 2007 07:25:22 +0000 (08:25 +0100)]
re PR target/31167 (ICE wnen using __int128_t on x86_64)
PR target/31167
* config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
x86_64_general_operand as operand[2] predicate. Remove "iF"
from operand constraints and use "e" constraint instead.
(*subti3_1, *subti3_1 splitter): Ditto.
(*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
operand[1] predicate.
testsuite/ChangeLog
PR target/31167
* gcc.target/i386/pr31167.c: New test.
Paul Thomas [Thu, 15 Mar 2007 06:44:25 +0000 (06:44 +0000)]
[multiple changes]
2007-03-15 Tobias Burnus <burnus@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/30922
* decl.c (gfc_match_import): If the parent of the current name-
space is null, try looking for an imported symbol in the parent
of the proc_name interface.
* resolve.c (resolve_fl_variable): Do not check for blocking of
host association by a same symbol, if the symbol is in an
interface body.
2007-03-15 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30879
* decl.c (match_data_constant): Before going on to try to match
a name, try to match a structure component.
PR fortran/30870
* resolve.c (resolve_actual_arglist): Do not reject a generic
actual argument if it has a same name specific interface.
PR fortran/31163
* trans-array.c (parse_interface): Do not nullify allocatable
components if the symbol has the saved attribute.
2007-03-15 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30922
* gfortran.dg/import5.f90.f90: New test.
PR fortran/30879
* gfortran.dg/data_components_1.f90: New test.
PR fortran/30870
* gfortran.dg/generic_13.f90: New test.
PR fortran/31163
* gfortran.dg/alloc_comp_basics_5.f90: New test.
Sebastian Pop [Wed, 14 Mar 2007 23:23:24 +0000 (00:23 +0100)]
tree-loop-linear.c (gather_interchange_stats): For multidimensional arrays...
* tree-loop-linear.c (gather_interchange_stats): For multidimensional
arrays, multiply the access strides by the size of the sub-array.
* testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
Dirk Mueller [Wed, 14 Mar 2007 23:17:03 +0000 (23:17 +0000)]
re PR c++/30860 (Should warn about boolean constant false used in pointer context)
2007-03-15 Dirk Mueller <dmueller@suse.de>
PR c++/30860
* call.c (convert_conversion_warnings): New..
(convert_like_real): .. factored out from here.
(convert_conversion_warnings): Add warning about
false being converted to NULL in argument passing.
trans-array.c (gfc_trans_auto_array_allocation): Replace fold(convert()) by fold_convert().
* trans-array.c (gfc_trans_auto_array_allocation): Replace
fold(convert()) by fold_convert().
(gfc_duplicate_allocatable): Likewise.
* trans-intrinsic.c (gfc_conv_intrinsic_dot_product): Use
build_int_cst instead of converting an integer_zero_node
to the final type.
* testsuite/lib/libstdc++.exp (check_v3_target_fileio,
check_v3_target_time): New.
* testsuite/lib/dg-options.exp (dg-require-fileio,
dg-require-time): New.
* testsuite/ext/stdio_sync_filebuf/char/12048-1.cc: Use it.
* testsuite/ext/stdio_sync_filebuf/char/12048-2.cc: Use it.
* testsuite/ext/stdio_sync_filebuf/char/12048-3.cc: Use it.
* testsuite/ext/stdio_sync_filebuf/char/12048-4.cc: Use it.
* testsuite/ext/stdio_sync_filebuf/char/1.cc: Use it.
* testsuite/ext/stdio_filebuf/char/2.cc: Use it.
* testsuite/ext/stdio_filebuf/char/10063-1.cc: Use it.
* testsuite/ext/stdio_filebuf/char/10063-2.cc: Use it.
* testsuite/ext/stdio_filebuf/char/10063-3.cc: Use it.
* testsuite/22_locale/time_put/put/char/12439_1.cc: Use it.
* testsuite/22_locale/time_put/put/char/12439_3.cc: Use it.
* testsuite/27_io/basic_ofstream/open/char/1.cc: Use it.
* testsuite/27_io/basic_ofstream/cons/char/2.cc: Use it.
* testsuite/27_io/objects/char/12048-2.cc: Use it.
* testsuite/27_io/objects/char/12048-4.cc: Use it.
* testsuite/27_io/objects/char/12048-1.cc: Use it.
* testsuite/27_io/objects/char/12048-3.cc: Use it.
* testsuite/27_io/objects/char/10.cc: Use it.
* testsuite/27_io/objects/char/12048-5.cc: Use it.
* testsuite/27_io/basic_istream/get/char/2.cc: Use it.
* testsuite/27_io/basic_istream/ignore/char/2.cc: Use it.
* testsuite/27_io/basic_istream/ignore/char/3.cc: Use it.
* testsuite/27_io/basic_istream/getline/char/5.cc: Use it.
* testsuite/27_io/basic_istream/seekg/char/sstream.cc: Use it.
* testsuite/27_io/basic_istream/seekg/char/fstream.cc: Use it.
* testsuite/27_io/basic_istream/readsome/char/6746-2.cc: Use it.
* testsuite/27_io/basic_istream/extractors_other/char/2.cc: Use it.
* testsuite/27_io/basic_istream/tellg/char/sstream.cc: Use it.
* testsuite/27_io/basic_istream/tellg/char/1.cc: Use it.
* testsuite/27_io/basic_istream/tellg/char/fstream.cc: Use it.
* testsuite/27_io/basic_istream/extractors_character/char/4.cc: Use it.
* testsuite/27_io/basic_ostream/inserters_other/char/1.cc: Use it.
* testsuite/27_io/basic_ostream/tellp/char/1.cc: Use it.
* testsuite/27_io/basic_ostream/seekp/char/2346-fstream.cc: Use it.
* testsuite/27_io/basic_ifstream/open/char/1.cc: Use it.
* testsuite/27_io/basic_ifstream/cons/char/1.cc: Use it.
* testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc: Use it.
* testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc: Use it.
* testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sgetn/char/3.cc: Use it.
* testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: Use it.
* testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Use it.
* testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/12790-1.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/12790-2.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/12790-3.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/12790-4.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/3-out.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/11543.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/12790-1.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/12790-2.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/12790-3.cc: Use it.
* testsuite/27_io/basic_filebuf/seekoff/char/12790-4.cc: Use it.
* testsuite/27_io/basic_filebuf/in_avail/char/1.cc: Use it.
* testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc: Use it.
* testsuite/27_io/basic_filebuf/setbuf/char/1.cc: Use it.
* testsuite/27_io/basic_filebuf/setbuf/char/2.cc: Use it.
* testsuite/27_io/basic_filebuf/setbuf/char/3.cc: Use it.
* testsuite/27_io/basic_filebuf/setbuf/char/12875-1.cc: Use it.
* testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc: Use it.
* testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc: Use it.
* testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc: Use it.
* testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sbumpc/char/9825.cc: Use it.
* testsuite/27_io/basic_filebuf/is_open/char/1.cc: Use it.
* testsuite/27_io/basic_filebuf/sputc/char/1-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sputc/char/1-out.cc: Use it.
* testsuite/27_io/basic_filebuf/sputc/char/2-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sputc/char/2-out.cc: Use it.
* testsuite/27_io/basic_filebuf/open/12790-1.cc: Use it.
* testsuite/27_io/basic_filebuf/open/char/1.cc: Use it.
* testsuite/27_io/basic_filebuf/open/char/2.cc: Use it.
* testsuite/27_io/basic_filebuf/open/char/3.cc: Use it.
* testsuite/27_io/basic_filebuf/overflow/char/2-unbuf.cc: Use it.
* testsuite/27_io/basic_filebuf/overflow/char/2.cc: Use it.
* testsuite/27_io/basic_filebuf/overflow/char/9988.cc: Use it.
* testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc: Use it.
* testsuite/27_io/basic_filebuf/overflow/char/9169.cc: Use it.
* testsuite/27_io/basic_filebuf/snextc/char/1-in.cc: Use it.
* testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: Use it.
* testsuite/27_io/basic_filebuf/snextc/char/2-in.cc: Use it.
* testsuite/27_io/basic_filebuf/snextc/char/2-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc: Use it.
* testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc: Use it.
* testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc: Use it.
* testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc: Use it.
* testsuite/27_io/basic_filebuf/close/12790-1.cc: Use it.
* testsuite/27_io/basic_filebuf/close/char/1.cc: Use it.
* testsuite/27_io/basic_filebuf/close/char/12790-1.cc: Use it.
* testsuite/27_io/basic_filebuf/close/char/12790-2.cc: Use it.
* testsuite/27_io/basic_filebuf/close/char/2.cc: Use it.
* testsuite/27_io/basic_filebuf/close/char/12790-3.cc: Use it.
* testsuite/27_io/basic_filebuf/close/char/12790-4.cc: Use it.
* testsuite/27_io/basic_filebuf/close/char/4.cc: Use it.
* testsuite/27_io/basic_filebuf/underflow/10096.cc: Use it.
* testsuite/27_io/basic_filebuf/underflow/char/2.cc: Use it.
* testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc: Use it.
* testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc: Use it.
* testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/12790-1.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/12790-2.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/12790-3.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/12790-1.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/12790-2.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/12790-4.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc: Use it.
* testsuite/27_io/basic_filebuf/seekpos/char/3-out.cc: Use it.
* testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sputn/char/1-out.cc: Use it.
* testsuite/27_io/basic_filebuf/sputn/char/2-io.cc: Use it.
* testsuite/27_io/basic_filebuf/sputn/char/2-out.cc: Use it.
* testsuite/27_io/basic_filebuf/sputn/char/9339.cc: Use it.
* testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc: Use it.
* testsuite/27_io/basic_filebuf/sync/char/9182-1.cc: Use it.
* testsuite/21_strings/basic_string/inserters_extractors/char/10.cc: Use it.
* testsuite/21_strings/basic_string/inserters_extractors/char/11.cc: Use it.
* testsuite/21_strings/basic_string/inserters_extractors/char/5.cc: Use it.
Brooks Moses [Wed, 14 Mar 2007 04:38:47 +0000 (04:38 +0000)]
re PR fortran/30922 (IMPORT fails for same symbol in multiple interface bodies of same interface block)
PR fortran/30922
PR fortran/30948
PR fortran/30953
* intrinsics.texi (CHDIR): Fix argument names, note
that STATUS must be a default integer.
(CTIME): Fix argument names, note that RESULT must
be a default integer.
(EXIT): Note that STATUS must be a default integer.
Brooks Moses [Wed, 14 Mar 2007 02:43:27 +0000 (02:43 +0000)]
re PR fortran/28068 (Non-standard intrinsics should be documented)
PR fortran/28068
* intrinsic.texi: General whitespace cleanup, remove
comment about missing intrinsics.
(menu): Add lines for new entries listed below.
(ACOSH): Mention specific function DACOSH, correct
description phrasing.
(ASINH): Mention specific function DASINH, correct
description phrasing.
(ATANH): Mention specific function DATANH, correct
description phrasing.
(COS): Add index entry for CCOS.
(CPU_TIME): Correct "REAL" to "REAL(*)".
(EXP): Add index entry for CEXP.
(INT): Correct argument name to "A".
(INT2): New entry.
(INT8): New entry.
(LONG): New entry.
(MAX): Add index entries for specific variants.
(MCLOCK): New entry.
(MCLOCK8): New entry.
(SECNDS): Adjust to a more standard form.
(SECOND): New entry.
(TIME): Add cross-reference to MCLOCK.
(TIME8): Add cross-reference to MCLOCK8.
Alexandre Oliva [Wed, 14 Mar 2007 01:45:39 +0000 (01:45 +0000)]
re PR middle-end/31127 (ICE in cse_find_path, at cse.c:5930)
gcc/ChangeLog:
PR middle-end/31127
* cse.c (cse_find_path): Do not bail out if a basic block that
we already visited now becomes part of a path that starts at a
different basic block. Just disallow this, to make sure we
visit each basic block at most once.
gcc/testsuite/ChangeLog:
PR middle-end/31127
* gcc.dg/pr31127.c: New.
Zdenek Dvorak [Wed, 14 Mar 2007 00:38:34 +0000 (00:38 +0000)]
re PR tree-optimization/30730 (-Wunsafe-loop-optimizations gives too many warnings)
PR tree-optimization/30730
PR tree-optimization/26900
* tree-ssa-loop-niter.c: Include gmp.h.
(bounds): New type.
(mpz_set_double_int, get_type_bounds, mpz_to_double_int,
split_to_var_and_offset, determine_value_range,
bound_difference_of_offsetted_base, refine_bounds_using_guard,
bound_difference, bounds_add, bounds_negate,
number_of_iterations_ne_max, dump_affine_iv): New functions.
(number_of_iterations_ne, number_of_iterations_lt_to_ne,
assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
difference of initial and final value of control iv to validate
results.
(number_of_iterations_cond): Add loop parameter. Determine bounds
on the difference of the extremes of the control iv. Add dumps.
(expand_simple_operations): Handle phi nodes.
(simplify_using_initial_conditions): Do not record used conditions.
(number_of_iterations_exit): Pass loop to number_of_iterations_cond.
Do not set additional_info.
(implies_nonnegative_p, implies_ge_p): Removed.
(derive_constant_upper_bound): Do not use parameter `additional'.
(record_estimate): Parameter `additional' removed. Parameter
`i_bound' added. Do not call derive_constant_upper_bound.
(record_nonwrapping_iv): Use derive_constant_upper_bound to
bound the number of iterations estimate.
(estimate_numbers_of_iterations_loop): Pass the estimate from
the number of iterations analysis to record_estimate.
* tree.h (multiple_of_p): Declare.
* tree-scalar-evolution.c (expression_expensive_p): Removed.
(scev_const_prop): Do not check expression_expensive_p.
* fold-const.c (multiple_of_p): Exported.
* double-int.c (double_int_mask): Exported.
* double-int.h (double_int_mask): Declare.
* tree-flow.h (struct tree_niter_desc): Removed additional_info
field. Added max field.
Uros Bizjak [Tue, 13 Mar 2007 21:18:33 +0000 (22:18 +0100)]
i386.opt (mcx16, msahf): New options.
* config/i386/i386.opt (mcx16, msahf): New options.
* config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
(ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
* config/i386/driver-i386.c (bit_LAHF_LM): New define.
(host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
Output -mcx16 and -msahf options when corresponding bit is set.
* doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
and -msahf options.
testsuite/ChangeLog
* testsuite/gcc.target/i386/cmpxchg16b-1.c: New test.
Geoffrey Keating [Tue, 13 Mar 2007 07:13:16 +0000 (07:13 +0000)]
darwin-fallback.c: Compile file only on powerpc.
* config/rs6000/darwin-fallback.c: Compile file only on powerpc.
(handle_syscall): Handle direct system calls.
* config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
Seongbae Park [Mon, 12 Mar 2007 18:31:39 +0000 (18:31 +0000)]
invoke.texi (Wvla): New warning.
ChangeLog:
2007-03-12 Seongbae Park <seongbae.park@gmail.com>
* gcc/doc/invoke.texi (Wvla): New warning.
gcc/ChangeLog:
2007-03-12 Seongbae Park <seongbae.park@gmail.com>
* c-decl.c (warn_variable_length_array): New function.
Refactored from grokdeclarator to handle warn_vla
and handle unnamed array case.
(grokdeclarator): Refactored VLA warning case.
* c.opt (Wvla): New flag.
gcc/cp/ChangeLog:
2007-03-12 Seongbae Park <seongbae.park@gmail.com>
* decl.c (compute_array_index_type): New warning flag warn_vla.
gcc/testsuite/ChangeLog:
2007-03-12 Seongbae Park <seongbae.park@gmail.com>
* gcc.dg/wvla-1.c: New test
* gcc.dg/wvla-2.c: New test
* gcc.dg/wvla-3.c: New test
* gcc.dg/wvla-4.c: New test
* gcc.dg/wvla-5.c: New test
* gcc.dg/wvla-6.c: New test
* gcc.dg/wvla-7.c: New test
* g++.dg/warn/Wvla-1.C: New test
* g++.dg/warn/Wvla-2.C: New test
* g++.dg/warn/Wvla-3.C: New test
Uros Bizjak [Mon, 12 Mar 2007 11:32:13 +0000 (12:32 +0100)]
i386.md (fixuns_trunc<mode>hi2): Implement from fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF mode macro.
* config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
mode macro.
(fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
fix_truncdfdi_sse using SSEMODEF mode macro.
(fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
fix_truncdfsi_sse using SSEMODEF mode macro.
(fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
(fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
target-supports.exp (check_profiling_available): Return false for VxWorks.
gcc/testsuite/
* lib/target-supports.exp (check_profiling_available): Return false
for VxWorks.
(check_effective_target_vxworks_kernel): New procedure.
* gcc.dg/20040813-1.c: Extend list of stabless targets to include
VxWorks.
* gcc.dg/builtins-config.h: Do not define HAVE_C99_RUNTIME on VxWorks.
* gcc.dg/intmax_t-1.c: Extend the list of targets without inttypes.h
to include VxWorks.
* gcc.dg/vxworks/initpri2.c: Require vxworks_kernel.
Paul Thomas [Sun, 11 Mar 2007 16:17:32 +0000 (16:17 +0000)]
re PR fortran/30883 ([4.1/4.2 only] procedure with dummy procedure f1 rejected with implicit none)
2007-03-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30883
* parse.c (parse_interface): Use the default types from the
formal namespace if a function or its result do not have a type
after parsing the specification statements.
2007-03-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30883
* gfortran.dg/interface_11.f90: New test.
Richard Guenther [Sun, 11 Mar 2007 16:08:35 +0000 (16:08 +0000)]
re PR middle-end/31115 (libstdc++ 22_locale/num_get/get/char/2.cc 27_io/basic_ostream/inserters_arithmetic/char/6.cc)
2007-03-11 Richard Guenther <rguenther@suse.de>
PR tree-optimization/31115
* tree-vrp.c (extract_range_from_binary_expr): Make sure
the shift count is positive and non-anti-range for RSHIFT_EXPR.
A shift count of zero is not special as with *_DIV_EXPR.
(vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
direction.
Paolo Carlini [Sun, 11 Mar 2007 12:03:34 +0000 (12:03 +0000)]
PR libstdc++/28080 (final)
2007-03-11 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/28080 (final)
* include/std/iosfwd: Do not include <bits/c++io.h>.
* config/io/basic_file_stdio.h: Do it here.
* include/ext/stdio_sync_filebuf.h: Likewise.
* include/ext/rope: Include <bits/gthr.h> unconditionally.
* include/std/fstream: Do not include <bits/gthr.h>.
* include/std/ios: Do not include <cstdio>.
* include/bits/ios_base.h: Do it here.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust dg-error
line numbers.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.
Ira Rosen [Sun, 11 Mar 2007 11:13:34 +0000 (11:13 +0000)]
tree-data-ref.c (analyze_offset): Add a return value (bool) to indicate success/failure of the analysis.
* tree-data-ref.c (analyze_offset): Add a return value (bool) to
indicate success/failure of the analysis. Add negation to subtrahend
in case of subtraction. Fail if both operands contain constants.
(create_data_ref): Fail if analyze_offset fails.