diff options
author | Tobias Burnus <burnus@net-b.de> | 2011-02-22 11:23:14 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2011-02-22 11:23:14 +0100 |
commit | e84589e12916daf9b743432a0744ead7f31f2660 (patch) | |
tree | cda8bda73e25f2c0b513472482330e3d671461fc /gcc/fortran/trans-stmt.c | |
parent | 1b4a8aae79692a9e44593bcf21803baa0fd3fd89 (diff) | |
download | gcc-e84589e12916daf9b743432a0744ead7f31f2660.zip gcc-e84589e12916daf9b743432a0744ead7f31f2660.tar.gz gcc-e84589e12916daf9b743432a0744ead7f31f2660.tar.bz2 |
re PR fortran/41359 (Wrong line numbers for debugging/profiling)
2011-02-22 Tobias Burnus <burnus@net-b.de>
PR fortran/41359
* trans-stmt.c (gfc_trans_if_1): Use correct line for
expressions in the if condition.
From-SVN: r170394
Diffstat (limited to 'gcc/fortran/trans-stmt.c')
-rw-r--r-- | gcc/fortran/trans-stmt.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index 6ddb2ca..e120285 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); |