public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/41827]  New: [Cleanup] Remove SET_EXPR_LOCATION in gfc_trans_code
@ 2009-10-26  9:27 janus at gcc dot gnu dot org
  2009-11-17 11:48 ` [Bug fortran/41827] " janus at gcc dot gnu dot org
  2010-04-30 21:54 ` dfranke at gcc dot gnu dot org
  0 siblings, 2 replies; 4+ messages in thread
From: janus at gcc dot gnu dot org @ 2009-10-26  9:27 UTC (permalink / raw)
  To: gcc-bugs

At the end of gfc_trans_code one finds the following:


      gfc_set_backend_locus (&code->loc);

      if (res != NULL_TREE && ! IS_EMPTY_STMT (res))
        {
          if (TREE_CODE (res) != STATEMENT_LIST)
            SET_EXPR_LOCATION (res, input_location);

          /* Add the new statement to the block.  */
          gfc_add_expr_to_block (&block, res);
        }
    }

  /* Return the finished block.  */
  return gfc_finish_block (&block);
}


In principle the call to SET_EXPR_LOCATION should not be needed here, since the
location should already be set correctly at this point; cf. the discussion in 

http://gcc.gnu.org/ml/fortran/2009-10/msg00205.html

and follow-ups. However, this patch

Index: gcc/fortran/trans.c
===================================================================
--- gcc/fortran/trans.c (Revision 153547)
+++ gcc/fortran/trans.c (Arbeitskopie)
@@ -1281,9 +1281,6 @@ gfc_trans_code (gfc_code * code)

       if (res != NULL_TREE && ! IS_EMPTY_STMT (res))
        {
-         if (TREE_CODE (res) != STATEMENT_LIST)
-           SET_EXPR_LOCATION (res, input_location);
-
          /* Add the new statement to the block.  */
          gfc_add_expr_to_block (&block, res);
        }

yields (at least) the following regressions:

FAIL: gfortran.dg/gomp/appendix-a/a.24.1.f90  -O   (test for errors, line 20)   
FAIL: gfortran.dg/gomp/appendix-a/a.24.1.f90  -O   (test for errors, line 14)   
FAIL: gfortran.dg/gomp/appendix-a/a.24.1.f90  -O   (test for errors, line 20)   
FAIL: gfortran.dg/gomp/appendix-a/a.24.1.f90  -O  (test for excess errors)      
FAIL: gfortran.dg/gomp/appendix-a/a.35.1.f90  -O   (test for warnings, line 13) 
FAIL: gfortran.dg/gomp/appendix-a/a.35.1.f90  -O  (test for excess errors)      
FAIL: gfortran.dg/gomp/appendix-a/a.35.3.f90  -O   (test for warnings, line 10) 
FAIL: gfortran.dg/gomp/appendix-a/a.35.3.f90  -O  (test for excess errors)      
FAIL: gfortran.dg/gomp/appendix-a/a.35.4.f90  -O   (test for warnings, line 11) 
FAIL: gfortran.dg/gomp/appendix-a/a.35.4.f90  -O  (test for excess errors)      
FAIL: gfortran.dg/gomp/appendix-a/a.35.6.f90  -O   (test for warnings, line 9)  
FAIL: gfortran.dg/gomp/appendix-a/a.35.6.f90  -O  (test for excess errors)      
FAIL: gfortran.dg/gomp/block-1.f90  -O   (test for errors, line 5)              
FAIL: gfortran.dg/gomp/block-1.f90  -O  (test for excess errors)                
FAIL: gfortran.dg/gomp/crayptr3.f90  -O   (test for errors, line 19)            
FAIL: gfortran.dg/gomp/crayptr3.f90  -O   (test for errors, line 20)
FAIL: gfortran.dg/gomp/crayptr3.f90  -O  (test for excess errors)
FAIL: gfortran.dg/gomp/pr33439.f90  -O   (test for errors, line 8)
FAIL: gfortran.dg/gomp/pr33439.f90  -O   (test for errors, line 10)
FAIL: gfortran.dg/gomp/pr33439.f90  -O   (test for errors, line 21)
FAIL: gfortran.dg/gomp/pr33439.f90  -O   (test for errors, line 22)
FAIL: gfortran.dg/gomp/pr33439.f90  -O   (test for errors, line 33)
FAIL: gfortran.dg/gomp/pr33439.f90  -O  (test for excess errors)
FAIL: gfortran.dg/gomp/sharing-1.f90  -O   (test for errors, line 12)
FAIL: gfortran.dg/gomp/sharing-1.f90  -O   (test for errors, line 24)
FAIL: gfortran.dg/gomp/sharing-1.f90  -O   (test for errors, line 25)
FAIL: gfortran.dg/gomp/sharing-1.f90  -O   (test for errors, line 26)
FAIL: gfortran.dg/gomp/sharing-1.f90  -O  (test for excess errors)
FAIL: gfortran.dg/gomp/sharing-2.f90  -O   (test for errors, line 12)
FAIL: gfortran.dg/gomp/sharing-2.f90  -O   (test for errors, line 16)
FAIL: gfortran.dg/gomp/sharing-2.f90  -O   (test for errors, line 57)
FAIL: gfortran.dg/gomp/sharing-2.f90  -O   (test for errors, line 58)
FAIL: gfortran.dg/gomp/sharing-2.f90  -O   (test for errors, line 64)
FAIL: gfortran.dg/gomp/sharing-2.f90  -O   (test for errors, line 65)
FAIL: gfortran.dg/gomp/sharing-2.f90  -O  (test for excess errors)
FAIL: gfortran.dg/gomp/sharing-3.f90  -O   (test for errors, line 28)
FAIL: gfortran.dg/gomp/sharing-3.f90  -O   (test for errors, line 30)
FAIL: gfortran.dg/gomp/sharing-3.f90  -O   (test for errors, line 33)
FAIL: gfortran.dg/gomp/sharing-3.f90  -O   (test for errors, line 34)
FAIL: gfortran.dg/gomp/sharing-3.f90  -O  (test for excess errors)

One should find out for which kind of statements the SET_EXPR_LOCATION is
actually needed, and fix those in an appropriate way.


-- 
           Summary: [Cleanup] Remove SET_EXPR_LOCATION in gfc_trans_code
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: janus at gcc dot gnu dot org


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-06-16 18:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-41827-4@http.gcc.gnu.org/bugzilla/>
2013-06-15 11:04 ` [Bug fortran/41827] [Cleanup] Remove SET_EXPR_LOCATION in gfc_trans_code dominiq at lps dot ens.fr
2013-06-16 18:06 ` dominiq at lps dot ens.fr
2009-10-26  9:27 [Bug fortran/41827] New: " janus at gcc dot gnu dot org
2009-11-17 11:48 ` [Bug fortran/41827] " janus at gcc dot gnu dot org
2010-04-30 21:54 ` dfranke at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).