Asher Langton [Mon, 24 Oct 2005 14:50:18 +0000 (14:50 +0000)]
Commit for Asher Langton <langton2@llnl.gov>
fortran/
* decl.c (gfc_match_save): Changed duplicate SAVE errors to
warnings in the absence of strict standard conformance
* symbol.c (gfc_add_save): Same.
testsuite/
* gfortran.dg/dup_save_1.f90: New test.
* gfortran.dg/dup_save_2.f90: New test.
re PR fortran/15586 (gfortran should support i18n in its compiler messages)
PR fortran/15586
* arith.c (gfc_arith_error): Change message to include locus.
(check_result, eval_intrinsic, gfc_int2int, gfc_real2real,
gfc_real2complex, gfc_complex2real, gfc_complex2complex): Use
the new gfc_arith_error.
(arith_error): Rewrite full error messages instead of building
them from pieces.
* check.c (must_be): Removed.
(type_check, numeric_check, int_or_real_check, real_or_complex_check,
kind_check, double_check, logical_array_check, array_check,
scalar_check, same_type_check, rank_check, kind_value_check,
variable_check, gfc_check_allocated, gfc_check_associated,
gfc_check_cmplx, gfc_check_dcmplx, gfc_check_dot_product,
gfc_check_index, gfc_check_kind, gfc_check_matmul, gfc_check_null,
gfc_check_pack, gfc_check_precision, gfc_check_present,
gfc_check_spread): Rewrite full error messages instead of
building them from pieces.
* decl.c (gfc_match_entry): Rewrite full error messages instead
of building them from pieces.
* parse.c (gfc_state_name): Remove.
* parse.h: Remove prototype for gfc_state_name.
re PR libfortran/23272 ([mingw32] inquire via filename fails)
PR libfortran/23272
* acinclude.m4 (LIBGFOR_CHECK_WORKING_STAT): New check.
* configure.ac: Use LIBGFOR_CHECK_WORKING_STAT.
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
* io/unix.c (compare_file_filename): Add fallback case for
systems without working stat.
* io/open.c (already_open): Correct call to
compare_file_filename.
* io/io.h: Correct proto for compare_file_filename.
Paul Thomas [Sun, 23 Oct 2005 06:59:17 +0000 (06:59 +0000)]
re PR fortran/18022 (problem with structure and calling a function)
2005-10-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/18022
* trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL
if there is a component ref during an array ref to force
use of temporary in assignment.
PR fortran/24311
PR fortran/24384
* fortran/iresolve.c (check_charlen_present): New function to
add a charlen to the typespec, in the case of constant
expressions.
(gfc_resolve_merge, gfc_resolve_spread): Call.the above.
(gfc_resolve_spread): Make calls to library functions that
handle the case of the spread intrinsic with a scalar source.
* libgfortran/intrinsics/spread_generic.c (spread_internal
_scalar): New function that handles the special case of spread
with a scalar source. This has interface functions -
(spread_scalar, spread_char_scalar): New functions to interface
with the calls specified in gfc_resolve_spread.
2005-10-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/18022
gfortran.dg/assign_func_dtcomp_1.f90: New test.
PR fortran/24311
gfortran.dg/merge_char_const.f90: New test.
PR fortran/24384
gfortran.dg/spread_scalar_source.f90: New test.
Paolo Bonzini [Sat, 22 Oct 2005 10:37:17 +0000 (10:37 +0000)]
re PR bootstrap/24297 (libtool: link: unable to infer tagged configuration)
2005-10-22 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/24297
* Makefile.tpl (do-[+make-target+], do-check, install,
stage[+id+]-bubble, [+compare-target+]): Ensure $$r and $$s
are set before recursing.
* Makefile.in: Regenerate.
James E Wilson [Fri, 21 Oct 2005 17:54:20 +0000 (10:54 -0700)]
Fix bug with -MM -MG.
PR preprocessor/15220
* files.c (_cpp_find_file): New parameter angle_brackets. Fix all
callers. Pass to open_file_failed.
(open_file_failed): New parameter angle_brackets. Fix all callers.
Use in print_dep assignment.
* init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
* internal.h (_cpp_find_file): Add new parm to declaration.
Eric Botcazou [Fri, 21 Oct 2005 15:46:19 +0000 (15:46 +0000)]
re PR ada/21937 (Member record alignment triggers an ICE)
PR ada/21937
PR ada/22328
PR ada/22381
PR ada/22383
PR ada/22419
PR ada/22420
* utils2.c (build_return_expr): New helper function.
* gigi.h (build_return_expr): Declare it.
* trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
of manually building the RETURN_EXPR tree.
(call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
(gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
build_binary_op for the "target pointer" case. �Use build_return_expr
instead of manually building the RETURN_EXPR tree.
Alexandre Oliva [Thu, 20 Oct 2005 19:30:23 +0000 (19:30 +0000)]
re PR middle-end/24295 (Xorg broken, #pragma weak foo = bar no longer causes bar to be referenced)
gcc/ChangeLog:
PR middle-end/24295
* cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
alias targets.
* varasm.c (find_decl_and_mark_needed): After cgraph global info
is ready, stop marking functions, but still mark variables.
gcc/testsuite/ChangeLog:
PR middle-end/24295
* g++.old-deja/g++.abi/vtable2.C: Do not introduce external
declarations with the same names as thunks' alias targets, use
aliases instead.
* gcc.dg/attr-alias-3.c: New test.
* gcc.dg/weak/weak-14.c, gcc.dg/weak/weak-14a.c: New test.
Erik Edelmann [Wed, 19 Oct 2005 22:18:07 +0000 (01:18 +0300)]
re PR fortran/21625 ([4.0 only] Nested derived type pointer component not initialized on ALLOCATE)
PR fortran/21625
* resolve.c (expr_to_initialize): New function.
(resolve_allocate_expr): Take current statement as new
argument. Add default initializers to variables of
derived types, if they need it.
(resolve_code): Provide current statement as argument to
resolve_allocate_expr().
Steven Bosscher [Wed, 19 Oct 2005 14:48:29 +0000 (14:48 +0000)]
re PR c/23228 (Silly "unused variable" warning after redeclaration of a local variable)
PR c/23228
* c-decl.c (pop_scope): Don't warn about an unused variable
if it is marked with TREE_NO_WARNING.
(duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
somenow mismatch and olddecl is to be replaced.
PR libfortran/24432
* c99_protos.h: Define preprocessor HAVE_ macros with value 1
instead of empty value.
* intrinsics/c99_functions.c: Likewise.
* intrinsics/getXid.c: Define HAVE_GETPID with value 1 instead of
empty value.
* intrinsics/sleep.c: Define HAVE_SLEEP with value 1 instead of
empty value.
Paul Thomas [Wed, 19 Oct 2005 05:33:32 +0000 (05:33 +0000)]
re PR fortran/24440 (gfortran failed to build 187.facerec)
2005-10-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24440
* resolve.c (resolve_symbol): Correct error in check for
assumed size array with default initializer by testing
for arrayspec before dereferencing it.
Mark Mitchell [Tue, 18 Oct 2005 15:39:12 +0000 (15:39 +0000)]
re PR c++/23293 (Misleading names in diagnostics for typedefs in functions)
PR c++/23293
* pt.c (convert_template_argument): Use canonical type variants in
template specializations.
PR c++/23293
* g++.dg/template/error19.C: New test.
Nathan Sidwell [Tue, 18 Oct 2005 13:45:23 +0000 (13:45 +0000)]
re PR c++/21383 (Crash when finding &a_templated_func<>)
cp:
PR c++/21383
* name-lookup.c (arg_assoc): Template args can be null in a
template-id-expr.
testsuite:
PR c++/21383
* g++.dg/overload/koenig2.C: New.
Paul Thomas [Mon, 17 Oct 2005 20:52:37 +0000 (20:52 +0000)]
re PR fortran/23446 (Valid internal subprogram array argument declaration is not accepted.)
2005-10-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/23446
* gfortran.h: Primitive for gfc_is_formal_arg.
* resolve.c(gfc_is_formal_arg): New function to signal across
several function calls that formal argument lists are being
processed.
(resolve_formal_arglist): Set/reset the flag for gfc_is_formal_arg.
*expr.c(check_restricted): Add check, via gfc_is_formal_arg, if
symbol is part of an formal argument declaration.
PR fortran/21459
* decl.c (add_init_expr_to_sym): Make a new character
length for each variable, when the expression is NULL
and link to cl_list.
PR fortran/20866
* match.c (recursive_stmt_fcn): New function that tests if
a statement function resurses through itself or other other
statement functions.
(gfc_match_st_function): Call recursive_stmt_fcn to check
if this is recursive and to raise error if so.
PR fortran/20849
PR fortran/20853
* resolve.c (resolve_symbol): Errors for assumed size arrays
with default initializer and for external objects with an
initializer.
PR fortran/20837
* decl.c (match_attr_spec): Prevent PUBLIC from being used
outside a module.
2005-10-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/23446
* gfortran.dg/host_dummy_index_1.f90: New test.
PR fortran/21459
gfortran.dg/automatic_char_len_2.f90: New test.
PR fortran/20866
gfortran.dg/recursive_statement_functions.f90: New test.
PR fortran/20853
gfortran.dg/assumed_size_dt_dummy.f90: New test.
PR fortran/20849
gfortran.dg/external_initializer.f90: New test.