From 7839d6a58dacf961570182c3fda36fe00b63a475 Mon Sep 17 00:00:00 2001 From: burnus Date: Tue, 22 Feb 2011 10:23:14 +0000 Subject: [PATCH] 2011-02-22 Tobias Burnus PR fortran/41359 * trans-stmt.c (gfc_trans_if_1): Use correct line for expressions in the if condition. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170394 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-stmt.c | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 951be24dc12..a19ba0b7511 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2011-02-22 Tobias Burnus + + PR fortran/41359 + * trans-stmt.c (gfc_trans_if_1): Use correct line for + expressions in the if condition. + 2011-02-20 Tobias Burnus PR fortran/47797 diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index 6ddb2cab3ed..e1202858bb2 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -718,6 +718,7 @@ gfc_trans_if_1 (gfc_code * code) { gfc_se if_se; tree stmt, elsestmt; + locus saved_loc; location_t loc; /* Check for an unconditional ELSE clause. */ @@ -729,8 +730,17 @@ gfc_trans_if_1 (gfc_code * code) gfc_start_block (&if_se.pre); /* Calculate the IF condition expression. */ + if (code->expr1->where.lb) + { + gfc_save_backend_locus (&saved_loc); + gfc_set_backend_locus (&code->expr1->where); + } + gfc_conv_expr_val (&if_se, code->expr1); + if (code->expr1->where.lb) + gfc_restore_backend_locus (&saved_loc); + /* Translate the THEN clause. */ stmt = gfc_trans_code (code->next); -- 2.11.4.GIT