diff options
author | edlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-02-10 18:19:01 +0000 |
---|---|---|
committer | edlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-02-10 18:19:01 +0000 |
commit | c36804c0ddc3b360e1cd338f45c3bff41e4aa961 (patch) | |
tree | 263ae58025f3ef32705aa60e81faeec9d6d3466b | |
parent | 36706943f09724df04805d13092fadbb1444359a (diff) | |
download | ppe42-gcc-c36804c0ddc3b360e1cd338f45c3bff41e4aa961.tar.gz ppe42-gcc-c36804c0ddc3b360e1cd338f45c3bff41e4aa961.zip |
2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR middle-end/60080
* cfgexpand.c (expand_asm_operands): Attach source location to
ASM_INPUT rtx objects.
* print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207668 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/cfgexpand.c | 7 | ||||
-rw-r--r-- | gcc/print-rtl.c | 14 |
3 files changed, 20 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 40af8d49a27..a5ad4facea7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de> + + PR middle-end/60080 + * cfgexpand.c (expand_asm_operands): Attach source location to + ASM_INPUT rtx objects. + * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION. + 2014-02-10 Nick Clifton <nickc@redhat.com> * config/mn10300/mn10300.c (popcount): New function. @@ -489,7 +496,7 @@ 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de> - * gcc/config/host-linux.c (linux_gt_pch_use_address): Don't + * config/host-linux.c (linux_gt_pch_use_address): Don't use SSIZE_MAX because it is not always defined. 2014-02-04 Vladimir Makarov <vmakarov@redhat.com> diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index c0cbeb3c022..06d494c3d92 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -2678,8 +2678,9 @@ expand_asm_operands (tree string, tree outputs, tree inputs, ASM_OPERANDS_INPUT (body, i) = op; ASM_OPERANDS_INPUT_CONSTRAINT_EXP (body, i) - = gen_rtx_ASM_INPUT (TYPE_MODE (type), - ggc_strdup (constraints[i + noutputs])); + = gen_rtx_ASM_INPUT_loc (TYPE_MODE (type), + ggc_strdup (constraints[i + noutputs]), + locus); if (tree_conflicts_with_clobbers_p (val, &clobbered_regs)) clobber_conflict_found = 1; @@ -2701,7 +2702,7 @@ expand_asm_operands (tree string, tree outputs, tree inputs, sprintf (buffer, "%d", j); ASM_OPERANDS_INPUT_CONSTRAINT_EXP (body, ninputs - ninout + i) - = gen_rtx_ASM_INPUT (inout_mode[i], ggc_strdup (buffer)); + = gen_rtx_ASM_INPUT_loc (inout_mode[i], ggc_strdup (buffer), locus); } /* Copy labels to the vector. */ diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index 5f2a4454a0f..09ac387d18b 100644 --- a/gcc/print-rtl.c +++ b/gcc/print-rtl.c @@ -417,17 +417,19 @@ print_rtx (const_rtx in_rtx) else if (i == 6 && GET_CODE (in_rtx) == ASM_OPERANDS) { #ifndef GENERATOR_FILE - fprintf (outfile, " %s:%i", - LOCATION_FILE (ASM_OPERANDS_SOURCE_LOCATION (in_rtx)), - LOCATION_LINE (ASM_OPERANDS_SOURCE_LOCATION (in_rtx))); + if (ASM_OPERANDS_SOURCE_LOCATION (in_rtx) != UNKNOWN_LOCATION) + fprintf (outfile, " %s:%i", + LOCATION_FILE (ASM_OPERANDS_SOURCE_LOCATION (in_rtx)), + LOCATION_LINE (ASM_OPERANDS_SOURCE_LOCATION (in_rtx))); #endif } else if (i == 1 && GET_CODE (in_rtx) == ASM_INPUT) { #ifndef GENERATOR_FILE - fprintf (outfile, " %s:%i", - LOCATION_FILE (ASM_INPUT_SOURCE_LOCATION (in_rtx)), - LOCATION_LINE (ASM_INPUT_SOURCE_LOCATION (in_rtx))); + if (ASM_INPUT_SOURCE_LOCATION (in_rtx) != UNKNOWN_LOCATION) + fprintf (outfile, " %s:%i", + LOCATION_FILE (ASM_INPUT_SOURCE_LOCATION (in_rtx)), + LOCATION_LINE (ASM_INPUT_SOURCE_LOCATION (in_rtx))); #endif } else if (i == 6 && NOTE_P (in_rtx)) |