diff options
author | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-27 10:45:44 +0000 |
---|---|---|
committer | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-27 10:45:44 +0000 |
commit | da6ffc6d7f06a20743992bbe20e735042d059cca (patch) | |
tree | d3c2ffda8f3516e7c1760aaa7f36971d80e86958 /libgfortran | |
parent | 55aa94bcb93bab608f27dd416aece130adaefbf9 (diff) | |
download | ppe42-gcc-da6ffc6d7f06a20743992bbe20e735042d059cca.tar.gz ppe42-gcc-da6ffc6d7f06a20743992bbe20e735042d059cca.zip |
2008-07-27 Tobias Burnus <burnus@net-b.de>
PR fortran/36132
PR fortran/29952
PR fortran/36909
* trans.c (gfc_trans_runtime_check): Allow run-time warning
* besides
run-time error.
* trans.h (gfc_trans_runtime_check): Update declaration.
* trans-array.c
* (gfc_trans_array_ctor_element,gfc_trans_array_bound_check,
gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias):
Updated gfc_trans_runtime_check calls.
(gfc_conv_array_parameter): Implement flag_check_array_temporaries,
fix packing/unpacking for nonpresent optional actuals to optional
formals.
* trans-array.h (gfc_conv_array_parameter): Update declaration.
* trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign,
gfc_conv_function_call): Updated gfc_trans_runtime_check calls.
(gfc_conv_function_call): Update gfc_conv_array_parameter calls.
* trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check
calls.
* trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto.
(gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for
gfc_conv_array_parameter.
* trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto.
* trans-decl.c (gfc_build_builtin_function_decls): Add
gfor_fndecl_runtime_warning_at.
* lang.opt: New option fcheck-array-temporaries.
* gfortran.h (gfc_options): New flag_check_array_temporaries.
* options.c (gfc_init_options, gfc_handle_option): Handle flag.
* invoke.texi: New option fcheck-array-temporaries.
2008-07-27 Tobias Burnus <burnus@net-b.de>
PR fortran/36132
PR fortran/29952
PR fortran/36909
* runtime/error.c: New function runtime_error_at.
* gfortran.map: Ditto.
* libgfortran.h: Ditto.
2008-07-27 Tobias Burnus <burnus@net-b.de>
PR fortran/36132
PR fortran/29952
PR fortran/36909
gfortran.dg/internal_pack_4.f90: New.
gfortran.dg/internal_pack_5.f90: New.
gfortran.dg/array_temporaries_2.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138186 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 9 | ||||
-rw-r--r-- | libgfortran/gfortran.map | 1 | ||||
-rw-r--r-- | libgfortran/libgfortran.h | 3 | ||||
-rw-r--r-- | libgfortran/runtime/error.c | 15 |
4 files changed, 28 insertions, 0 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 2459b539096..0eb171ce4b0 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,12 @@ +2008-07-27 Tobias Burnus <burnus@net-b.de> + + PR fortran/36132 + PR fortran/29952 + PR fortran/36909 + * runtime/error.c: New function runtime_error_at. + * gfortran.map: Ditto. + * libgfortran.h: Ditto. + 2008-07-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/36852 diff --git a/libgfortran/gfortran.map b/libgfortran/gfortran.map index 0671b60fb86..93973d5b338 100644 --- a/libgfortran/gfortran.map +++ b/libgfortran/gfortran.map @@ -1072,6 +1072,7 @@ GFORTRAN_1.1 { _gfortran_pack_char4; _gfortran_pack_s_char4; _gfortran_reshape_char4; + _gfortran_runtime_warning_at; _gfortran_selected_char_kind; _gfortran_select_string_char4; _gfortran_spread_char4; diff --git a/libgfortran/libgfortran.h b/libgfortran/libgfortran.h index 10439bd3e5a..7c497004a81 100644 --- a/libgfortran/libgfortran.h +++ b/libgfortran/libgfortran.h @@ -643,6 +643,9 @@ extern void runtime_error_at (const char *, const char *, ...) __attribute__ ((noreturn, format (printf, 2, 3))); iexport_proto(runtime_error_at); +extern void runtime_warning_at (const char *, const char *, ...); +iexport_proto(runtime_warning_at); + extern void internal_error (st_parameter_common *, const char *) __attribute__ ((noreturn)); internal_proto(internal_error); diff --git a/libgfortran/runtime/error.c b/libgfortran/runtime/error.c index 8cd966fa23f..0b9c16705eb 100644 --- a/libgfortran/runtime/error.c +++ b/libgfortran/runtime/error.c @@ -285,6 +285,21 @@ runtime_error_at (const char *where, const char *message, ...) iexport(runtime_error_at); +void +runtime_warning_at (const char *where, const char *message, ...) +{ + va_list ap; + + st_printf ("%s\n", where); + st_printf ("Fortran runtime warning: "); + va_start (ap, message); + st_vprintf (message, ap); + va_end (ap); + st_printf ("\n"); +} +iexport(runtime_warning_at); + + /* void internal_error()-- These are this-can't-happen errors * that indicate something deeply wrong. */ |