PR fortran/53148
* frontend-passes.c (create_var): If the statement has a label,
put the label around the block.
2012-04-29 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/53148
* gfortran.dg/function_optimize_12.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186942
138bc75d-0d04-0410-961f-
82ee72b054a4
+2012-04-29 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/53148
+ * frontend-passes.c (create_var): If the statement has a label,
+ put the label around the block.
+
2012-04-25 Tobias Burnus <burnus@net-b.de>
PR fortran/52196
inserted_block->ext.block.assoc = NULL;
ns->code = *current_code;
+
+ /* If the statement has a label, make sure it is transferred to
+ the newly created block. */
+
+ if ((*current_code)->here)
+ {
+ inserted_block->here = (*current_code)->here;
+ (*current_code)->here = NULL;
+ }
+
inserted_block->next = (*current_code)->next;
changed_statement = &(inserted_block->ext.block.ns->code);
(*current_code)->next = NULL;
+2012-04-29 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/53148
+ * gfortran.dg/function_optimize_12.f90: New test.
+
2012-04-29 Hans-Peter Nilsson <hp@axis.com>
PR target/53156
--- /dev/null
+! { dg-do run }
+! { dg-options "-ffrontend-optimize" }
+! PR 53148 - this used to cause wrong code because the label was
+! placed after the statement assigning the new variables.
+program main
+ integer :: n
+ double precision x
+ n = 3
+ goto 100
+100 x = dble(n) + dble(n)
+ if (x /= 6.d0) call abort
+end program main