gcc/
PR c/29027
* c-lex.c (interpret_float): Default (no suffix) is double.
libcpp/
PR c/29027
* include/cpplib.h (CPP_N_DEFAULT): Define.
* expr.c (interpret_float_suffix): Recognize d or D for double,
return new value for default.
(cpp_classify_number): Issue pedwarn for use of d or D in suffix.
gcc/testsuite/
PR c/29027
* gcc.dg/fltconst-1.c: Don't error for use of d or D in suffix.
* gcc.dg/fltconst-2.c: New test.
* gcc.dg/fltconst-double-pedantic-1.c: New test.
* gcc.dg/fltconst-double-pedantic-2.c: New test.
From-SVN: r145422
PR c/39605
* c-decl.c (grokdeclarator): Pedwarn for file-scope array
declarator whose size is not an integer constant expression but
folds to an integer constant, then treat it as a constant
subsequently.
testsuite:
* gcc.dg/vla-17.c, gcc.dg/vla-18.c: New tests.
* gcc.dg/pr25682.c: Update expected diagnostics.
From-SVN: r145405
2009-04-01 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_plusminus_mult_expr): Do not fold
i * 4 + 2 to (i * 2 + 1) * 2.
* gcc.dg/fold-plusmult-2.c: New testcase.
From-SVN: r145403
PR c/37772
* c-parser.c (c_parser_asm_statement): Skip until close paren and
return if c_parser_asm_string_literal returned NULL.
* gcc.dg/pr37772.c: New test.
* g++.dg/ext/asm11.C: New test.
From-SVN: r145401
2009-04-01 H.J. Lu <hongjiu.lu@intel.com>
(restore_ld_library_path_env_vars): Always restore GCC_EXEC_PREFIX
to its original value, or unset if it was not defined.
From-SVN: r145400
* config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
already defined.
* config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
* config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
other typedefs to avoid conflicts with libgcc2.c. Define labels
to gain 16-bit bit-manipulation functions from libgcc2.c and then
include it.
* config/m32c/m32c-lib2-trapv.c: New file. Define labels
to gain 16-bit trapping arithmetic functions from libgcc2.c and
then include it.
From-SVN: r145397
PR other/39591
* omp-low.c (remove_exit_barrier): Don't optimize if there are any
addressable variables in the parallel that could go out of scope while
running queued tasks.
* testsuite/libgomp.c/pr39591-1.c: New test.
* testsuite/libgomp.c/pr39591-2.c: New test.
* testsuite/libgomp.c/pr39591-3.c: New test.
From-SVN: r145390
* config/rs6000/sysv4.opt (msdata): Improve option description.
--this line, and those below, will be ignored--
M ChangeLog
M config/rs6000/sysv4.opt
From-SVN: r145379
C++ DR 613
* semantics.c (finish_non_static_data_member): Allow such references
without an associated object in sizeof/decltype/alignof.
From-SVN: r145375
2009-03-31 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38917
* expr.c (gfc_check_assign): Allow pointer components when
checking for NULL.
PR fortran/38918
* resolve.c (check_data_variable): Treat pointer arrays with
scalars.
2009-03-31 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38917
PR fortran/38918
* gfortran.dg/data_pointer_1.f90: New test.
From-SVN: r145371
2009-03-31 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38915
* trans-expr.c (gfc_trans_assignment_1): Ensure temporaries
have a string_length.
2009-03-31 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38915
* gfortran.dg/char_length_15.f90: New test.
From-SVN: r145370
PR c++/38030, 38850, 39070
* pt.c (type_dependent_expression_p_push): New fn.
(tsubst_copy_and_build) [CALL_EXPR]: Only do arg-dep lookup when the
substitution makes the call non-dependent. Preserve koenig_p.
* parser.c (cp_parser_postfix_expression): Only do arg-dep lookup
for non-dependent calls.
* semantics.c (finish_call_expr): Revert earlier changes.
* cp-tree.h: Revert change to finish_call_expr prototype.
From-SVN: r145360
* loop-iv.c (replace_single_def_regs, replace_in_expr): New static
functions.
(simplify_using_assignment, simplify_using_initial_values): Call
replace_in_expr to make replacements. Call replace_single_def_regs
once on the initial version of the expression.
From-SVN: r145357
* loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
changed. Use this when trying to improve the upper bound.
Generate the comparison by using simplify_gen_relational.
From-SVN: r145354
* simplify-rtx.c (simplify_relational_operation_1): Simplify
(LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
GEU/LTU reversed.
From-SVN: r145353
* loop-iv.c (simplify_using_condition): A condition of the form
(EQ REG CONST) can be used to simply make a substitution.
(simplify_using_initial_values): Keep track of conditions we have seen
and keep using them to simplify new expressions, while applying the
same substitutions to them as to the expression.
From-SVN: r145352
* loop-iv.c (suitable_set_for_replacement): Renamed from
simplify_using_assignment; changed to return bool and to accept new
args DEST and SRC. Return true iff we find a source/destination pair
that can be used to make a replacement, and fill SRC and DEST if so.
Remove arg ALTERED. Don't deal with altered regs here. All callers
changed.
(simplify_using_initial_values): Deal with altered regs here and track
more precisely the effect they have on the validity of our expression.
From-SVN: r145351
2009-03-31 Richard Guenther <rguenther@suse.de>
PR middle-end/31029
* fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
equality comparisons. Fold C - X CMP X if C % 2 == 1.
* gcc.dg/fold-compare-4.c: New testcase.
* gcc.dg/fold-compare-5.c: Likewise.
From-SVN: r145345
PR target/39592
* config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
define_splits, floatunssi<mode>2): Require x87 conversions from
DImode to be permitted.
testsuite:
* gcc.target/i386/pr39592-1.c: New test.
From-SVN: r145342