re PR target/46655 (invalid '.line 0' directive emitted with -g)
PR target/46655 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only if <= USHRT_MAX in 32-bit mode. Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com> Co-Authored-By: Michael Haubenwallner <michael.haubenwallner@salomon.at> From-SVN: r168897
This commit is contained in:
parent
f4c69f53f9
commit
b9361af2c3
@ -1,3 +1,11 @@
|
||||
2011-01-17 Olivier Hainque <hainque@adacore.com>
|
||||
Michael Haubenwallner <michael.haubenwallner@salomon.at>
|
||||
Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
PR target/46655
|
||||
* xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
|
||||
if <= USHRT_MAX in 32-bit mode.
|
||||
|
||||
2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||
|
||||
* doc/install.texi (Configuration, Specific): Wrap long
|
||||
|
@ -81,8 +81,15 @@ const char *xcoff_lastfile;
|
||||
#define ASM_OUTPUT_LINE(FILE,LINENUM) \
|
||||
do \
|
||||
{ \
|
||||
/* Make sure we're in a function and prevent output of .line 0, as \
|
||||
line # 0 is meant for symbol addresses in xcoff. Additionally, \
|
||||
line numbers are 'unsigned short' in 32-bit mode. */ \
|
||||
if (xcoff_begin_function_line >= 0) \
|
||||
fprintf (FILE, "\t.line\t%d\n", ABS_OR_RELATIVE_LINENO (LINENUM)); \
|
||||
{ \
|
||||
int lno = ABS_OR_RELATIVE_LINENO (LINENUM); \
|
||||
if (lno > 0 && (TARGET_64BIT || lno <= (int)USHRT_MAX)) \
|
||||
fprintf (FILE, "\t.line\t%d\n", lno); \
|
||||
} \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user