diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/gfortran.h | 1 | ||||
-rw-r--r-- | gcc/fortran/intrinsic.c | 2 | ||||
-rw-r--r-- | gcc/fortran/intrinsic.texi | 33 |
4 files changed, 42 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 5a72e8a8bda..db7383c57f2 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2012-12-20 Janus Weil <janus@gcc.gnu.org> + + PR fortran/36044 + * gfortran.h (gfc_isym_id): Add GFC_ISYM_BACKTRACE. + * intrinsic.c (add_subroutines): Add "backtrace". + * intrinsic.texi (BACKTRACE): Document BACKTRACE intrinsic. + 2012-12-20 Tobias Burnus <burnus@net-b.de> PR fortran/54818 diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index 5eda83989da..ec0c61f09c9 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -505,6 +505,7 @@ enum gfc_isym_id GFC_ISYM_SHIFTA, GFC_ISYM_SHIFTL, GFC_ISYM_SHIFTR, + GFC_ISYM_BACKTRACE, GFC_ISYM_SIGN, GFC_ISYM_SIGNAL, GFC_ISYM_SI_KIND, diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c index 95a0f500bc2..274c921c8a8 100644 --- a/gcc/fortran/intrinsic.c +++ b/gcc/fortran/intrinsic.c @@ -2896,6 +2896,8 @@ add_subroutines (void) "value", BT_INTEGER, di, REQUIRED, INTENT_OUT, "atom", BT_INTEGER, di, REQUIRED, INTENT_IN); + add_sym_0s ("backtrace", GFC_ISYM_BACKTRACE, GFC_STD_GNU, NULL); + add_sym_1s ("cpu_time", GFC_ISYM_CPU_TIME, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_F95, gfc_check_cpu_time, NULL, gfc_resolve_cpu_time, tm, BT_REAL, dr, REQUIRED, INTENT_OUT); diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi index 3390959e20b..fc256cb9e8b 100644 --- a/gcc/fortran/intrinsic.texi +++ b/gcc/fortran/intrinsic.texi @@ -63,6 +63,7 @@ Some basic guidelines for editing this document: * @code{ATANH}: ATANH, Inverse hyperbolic tangent function * @code{ATOMIC_DEFINE}: ATOMIC_DEFINE, Setting a variable atomically * @code{ATOMIC_REF}: ATOMIC_REF, Obtaining the value of a variable atomically +* @code{BACKTRACE}: BACKTRACE, Show a backtrace * @code{BESSEL_J0}: BESSEL_J0, Bessel function of the first kind of order 0 * @code{BESSEL_J1}: BESSEL_J1, Bessel function of the first kind of order 1 * @code{BESSEL_JN}: BESSEL_JN, Bessel function of the first kind @@ -349,6 +350,7 @@ the applicable standard for each intrinsic procedure is noted. @item @emph{Description}: @code{ABORT} causes immediate termination of the program. On operating systems that support a core dump, @code{ABORT} will produce a core dump. +It will also print a backtrace, unless @code{-fno-backtrace} is given. @item @emph{Standard}: GNU extension @@ -371,7 +373,7 @@ end program test_abort @end smallexample @item @emph{See also}: -@ref{EXIT}, @ref{KILL} +@ref{EXIT}, @ref{KILL}, @ref{BACKTRACE} @end table @@ -1644,6 +1646,35 @@ end program atomic +@node BACKTRACE +@section @code{BACKTRACE} --- Show a backtrace +@fnindex BACKTRACE +@cindex backtrace + +@table @asis +@item @emph{Description}: +@code{BACKTRACE} shows a backtrace at an arbitrary place in user code. Program +execution continues normally afterwards. The backtrace information is printed +to the unit corresponding to @code{ERROR_UNIT} in @code{ISO_FORTRAN_ENV}. + +@item @emph{Standard}: +GNU Extension + +@item @emph{Class}: +Subroutine + +@item @emph{Syntax}: +@code{CALL BACKTRACE} + +@item @emph{Arguments}: +None + +@item @emph{See also}: +@ref{ABORT} +@end table + + + @node BESSEL_J0 @section @code{BESSEL_J0} --- Bessel function of the first kind of order 0 @fnindex BESSEL_J0 |