------- Comment #1 from burnus at gcc dot gnu dot org  2008-04-06 20:38 -------
With the following patch, the message shown is:

      INTEGER, PARAMETER, DIMENSION(10)  :: B = ISHFTC(3, A, 5)   !ICE
                                                      1
Error: Magnitude of second argument of ISHFTC exceeds third argument at (1)

I think there are more places were one should use expr->where instead of
sym->where; however, I do not see ad hoc whether this causes a less helpful
message for variables (as opposed to PARAMETERs); in this case it is simple as
the message states that it is the "second" and the "third" argument, which
makes the possition of the "1" less crutial.


Index: simplify.c
===================================================================
--- simplify.c  (revision 133965)
+++ simplify.c  (working copy)
@@ -1878,37 +1878,37 @@ gfc_expr *
 gfc_simplify_ishft (gfc_expr *e, gfc_expr *s)
 {
   gfc_expr *result;
   int shift, ashift, isize, k, *bits, i;

   if (e->expr_type != EXPR_CONSTANT || s->expr_type != EXPR_CONSTANT)
     return NULL;

   if (gfc_extract_int (s, &shift) != NULL)
     {
-      gfc_error ("Invalid second argument of ISHFT at %L", &s->where);
+      gfc_error ("Invalid second argument of ISHFT at %L", &e->where);


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35849

Reply via email to