[PATCH] Fix fallout of the 4.5 fortran locus changes (PR fortran/45344)
Jakub Jelinek
jakub@redhat.com
Fri Aug 20 09:49:00 GMT 2010
Hi!
I've backported a patch from trunk to fix a locus problem exhibited by
my recent patch. Committed to 4.5 after testing on i686-linux.
2010-08-20 Jakub Jelinek <jakub@redhat.com>
PR fortran/45344
Backport from mainline
2010-05-14 Jakub Jelinek <jakub@redhat.com>
* trans.c (trans_code): Set backend locus early.
* trans-decl.c (gfc_get_fake_result_decl): Use source location
of the function instead of current input_location.
* gfortran.dg/gomp/pr44036-1.f90: Adjust.
--- gcc/fortran/trans.c.jj 2010-08-17 08:52:00.000000000 +0200
+++ gcc/fortran/trans.c 2010-08-20 09:48:32.399813724 +0200
@@ -1090,6 +1090,8 @@ trans_code (gfc_code * code, tree cond)
gfc_add_expr_to_block (&block, res);
}
+ gfc_set_backend_locus (&code->loc);
+
switch (code->op)
{
case EXEC_NOP:
--- gcc/fortran/trans-decl.c.jj 2010-06-11 11:04:35.000000000 +0200
+++ gcc/fortran/trans-decl.c 2010-08-20 10:27:17.418795620 +0200
@@ -2252,11 +2252,11 @@ gfc_get_fake_result_decl (gfc_symbol * s
IDENTIFIER_POINTER (DECL_NAME (this_function_decl)));
if (!sym->attr.mixed_entry_master && sym->attr.function)
- decl = build_decl (input_location,
+ decl = build_decl (DECL_SOURCE_LOCATION (this_function_decl),
VAR_DECL, get_identifier (name),
gfc_sym_type (sym));
else
- decl = build_decl (input_location,
+ decl = build_decl (DECL_SOURCE_LOCATION (this_function_decl),
VAR_DECL, get_identifier (name),
TREE_TYPE (TREE_TYPE (this_function_decl)));
DECL_ARTIFICIAL (decl) = 1;
--- gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90.jj 2010-06-11 11:02:45.966395710 +0200
+++ gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90 2010-08-20 10:08:51.500782354 +0200
@@ -12,7 +12,7 @@ subroutine foo(a, b)
x = a(4)
!$omp end parallel
!$omp parallel default(none) private (x) ! { dg-error "enclosing parallel" }
- x = b(5) ! { dg-error "not specified in" "" { target *-*-* } 11 }
+ x = b(5) ! { dg-error "not specified in" }
!$omp end parallel
!$omp parallel default(none) private (x)
x = c(6)
Jakub
More information about the Gcc-patches
mailing list