summaryrefslogtreecommitdiffstats
path: root/libgfortran
diff options
context:
space:
mode:
authorfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2007-10-18 21:25:21 +0000
committerfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2007-10-18 21:25:21 +0000
commit1e346579d79c5fda24828961ae67f389658f8c3a (patch)
tree0769a04922654613317a07a6b2f817cda89a8b9e /libgfortran
parenta9b1e587884f7863872f65e817b0645449547196 (diff)
downloadppe42-gcc-1e346579d79c5fda24828961ae67f389658f8c3a.tar.gz
ppe42-gcc-1e346579d79c5fda24828961ae67f389658f8c3a.zip
PR libfortran/32021
* runtime/backtrace.c (local_strcasestr): Protect by appropriate macros. * runtime/main.c (cleanup): Cast argument to free. * intrinsics/spread_generic.c (spread_internal): Match runtime_error arguments and format. * intrinsics/signal.c (alarm_sub_int_i4, alarm_sub_int_i8): Cast pointers to avoid warnings. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129463 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog11
-rw-r--r--libgfortran/intrinsics/signal.c8
-rw-r--r--libgfortran/intrinsics/spread_generic.c11
-rw-r--r--libgfortran/runtime/backtrace.c20
-rw-r--r--libgfortran/runtime/main.c2
5 files changed, 34 insertions, 18 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index a75c91db08f..6dcc055c7db 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,14 @@
+2007-10-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR libfortran/32021
+ * runtime/backtrace.c (local_strcasestr): Protect by appropriate
+ macros.
+ * runtime/main.c (cleanup): Cast argument to free.
+ * intrinsics/spread_generic.c (spread_internal): Match runtime_error
+ arguments and format.
+ * intrinsics/signal.c (alarm_sub_int_i4, alarm_sub_int_i8): Cast
+ pointers to avoid warnings.
+
2007-10-18 Ben Elliston <bje@au.ibm.com>
* runtime/environ.c (init_choice): Remove unused function.
diff --git a/libgfortran/intrinsics/signal.c b/libgfortran/intrinsics/signal.c
index 2e28b543763..84565e8e497 100644
--- a/libgfortran/intrinsics/signal.c
+++ b/libgfortran/intrinsics/signal.c
@@ -198,14 +198,14 @@ alarm_sub_int_i4 (int *seconds, int *handler, GFC_INTEGER_4 *status)
#if defined (SIGALRM) && defined (HAVE_ALARM) && defined (HAVE_SIGNAL)
if (status != NULL)
{
- if (signal (SIGALRM, (void (*)(int)) *handler) == SIG_ERR)
+ if (signal (SIGALRM, (void (*)(int)) (INTPTR_T) *handler) == SIG_ERR)
*status = -1;
else
*status = alarm (*seconds);
}
else
{
- signal (SIGALRM, (void (*)(int)) *handler);
+ signal (SIGALRM, (void (*)(int)) (INTPTR_T) *handler);
alarm (*seconds);
}
#else
@@ -226,14 +226,14 @@ alarm_sub_int_i8 (int *seconds, int *handler, GFC_INTEGER_8 *status)
#if defined (SIGALRM) && defined (HAVE_ALARM) && defined (HAVE_SIGNAL)
if (status != NULL)
{
- if (signal (SIGALRM, (void (*)(int)) *handler) == SIG_ERR)
+ if (signal (SIGALRM, (void (*)(int)) (INTPTR_T) *handler) == SIG_ERR)
*status = -1;
else
*status = alarm (*seconds);
}
else
{
- signal (SIGALRM, (void (*)(int)) *handler);
+ signal (SIGALRM, (void (*)(int)) (INTPTR_T) *handler);
alarm (*seconds);
}
#else
diff --git a/libgfortran/intrinsics/spread_generic.c b/libgfortran/intrinsics/spread_generic.c
index 3752717aa8e..4be0a164c8a 100644
--- a/libgfortran/intrinsics/spread_generic.c
+++ b/libgfortran/intrinsics/spread_generic.c
@@ -131,9 +131,9 @@ spread_internal (gfc_array_char *ret, const gfc_array_char *source,
if (ret_extent != ncopies)
runtime_error("Incorrect extent in return value of SPREAD"
- " intrinsic in dimension %d: is %ld,"
- " should be %ld", n+1, (long int) ret_extent,
- (long int) ncopies);
+ " intrinsic in dimension %ld: is %ld,"
+ " should be %ld", (long int) n+1,
+ (long int) ret_extent, (long int) ncopies);
}
else
{
@@ -142,8 +142,9 @@ spread_internal (gfc_array_char *ret, const gfc_array_char *source,
- source->dim[dim].lbound;
if (ret_extent != extent[dim])
runtime_error("Incorrect extent in return value of SPREAD"
- " intrinsic in dimension %d: is %ld,"
- " should be %ld", n+1, (long int) ret_extent,
+ " intrinsic in dimension %ld: is %ld,"
+ " should be %ld", (long int) n+1,
+ (long int) ret_extent,
(long int) extent[dim]);
if (extent[dim] <= 0)
diff --git a/libgfortran/runtime/backtrace.c b/libgfortran/runtime/backtrace.c
index 9f97fe4dcd6..00605b50d3f 100644
--- a/libgfortran/runtime/backtrace.c
+++ b/libgfortran/runtime/backtrace.c
@@ -60,7 +60,18 @@ Boston, MA 02110-1301, USA. */
#include <ctype.h>
+/* Macros for common sets of capabilities: can we fork and exec, can
+ we use glibc-style backtrace functions, and can we use pipes. */
+#define CAN_FORK (defined(HAVE_FORK) && defined(HAVE_EXECVP) \
+ && defined(HAVE_WAIT))
+#define GLIBC_BACKTRACE (defined(HAVE_BACKTRACE) \
+ && defined(HAVE_BACKTRACE_SYMBOLS))
+#define CAN_PIPE (CAN_FORK && defined(HAVE_PIPE) \
+ && defined(HAVE_DUP2) && defined(HAVE_FDOPEN) \
+ && defined(HAVE_CLOSE))
+
+#if GLIBC_BACKTRACE && CAN_PIPE
static char *
local_strcasestr (const char *s1, const char *s2)
{
@@ -85,14 +96,7 @@ local_strcasestr (const char *s1, const char *s2)
}
#endif
}
-
-#define CAN_FORK (defined(HAVE_FORK) && defined(HAVE_EXECVP) \
- && defined(HAVE_WAIT))
-#define GLIBC_BACKTRACE (defined(HAVE_BACKTRACE) \
- && defined(HAVE_BACKTRACE_SYMBOLS))
-#define CAN_PIPE (CAN_FORK && defined(HAVE_PIPE) \
- && defined(HAVE_DUP2) && defined(HAVE_FDOPEN) \
- && defined(HAVE_CLOSE))
+#endif
#if GLIBC_BACKTRACE
diff --git a/libgfortran/runtime/main.c b/libgfortran/runtime/main.c
index 86777d9c70e..8632f152c95 100644
--- a/libgfortran/runtime/main.c
+++ b/libgfortran/runtime/main.c
@@ -176,5 +176,5 @@ cleanup (void)
close_units ();
if (please_free_exe_path_when_done)
- free (exe_path);
+ free ((char *) exe_path);
}
OpenPOWER on IntegriCloud