Thread View: gnu.gcc.bug
1 messages
1 total messages
Started by 07-Jan-1993 1501
Thu, 07 Jan 1993 15:00
cpp line directives
Author: 07-Jan-1993 1501
Date: Thu, 07 Jan 1993 15:00
Date: Thu, 07 Jan 1993 15:00
118 lines
4547 bytes
4547 bytes
I N T E R O F F I C E M E M O R A N D U M
Date: 07-Jan-1993 02:57pm BST
From: Tim Murnaghan @IME
MURNAGHANT
Dept:
Tel No:
TO: Remote Addressee ( _DECWRL::"BUG-GCC@PREP.AI.MIT.EDU" )
Subject: cpp line directives
A small bug report and a minor usability enhancement.
We find it useful to have a portable ansi pre-processor for other things as
well as C (like for pre-processing Makefiles - as imake does).
"gcc -E -" does not currently work as the suffix length check in gcc is before
the check for "-".
Programs like imake expect the # line number directives to be of a standard
form and so complains about the GNU cc1 specific 1,2,3 bits on the end of them.
The attached patch adds a -L flag to the pre-processor to turn these off, and
gcc uses this flag when used with "-E -".
*** gcc.c.orig Thu Jan 7 14:03:12 1993
--- gcc.c Thu Jan 7 14:42:57 1993
***************
*** 450,455 ****
--- 450,456 ----
%{!pipe:%g.s} %A\n }}}}"},
{"-",
"%{E:cpp -lang-c %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %I\
+ %{E:-L}\
%{C:%{!E:%eGNU C does not support -C without using -E}}\
%{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d}\
-undef -D__GNUC__=2 %{ansi:-trigraphs -$ -D__STRICT_ANSI__}\
***************
*** 3589,3595 ****
/* Look for a suffix. */
for (cp = compilers + n_compilers - 1; cp >= compilers; cp--)
{
! if (strlen (cp->suffix) < length
/* See if the suffix matches the end of NAME. */
&& !strcmp (cp->suffix,
name + length - strlen (cp->suffix))
--- 3590,3596 ----
/* Look for a suffix. */
for (cp = compilers + n_compilers - 1; cp >= compilers; cp--)
{
! if ((strlen (cp->suffix) < length || !strcmp(cp->suffix, "-"))
/* See if the suffix matches the end of NAME. */
&& !strcmp (cp->suffix,
name + length - strlen (cp->suffix))
*** cccp.c.orig Thu Jan 7 14:05:25 1993
--- cccp.c Thu Jan 7 14:05:56 1993
***************
*** 363,368 ****
--- 363,369 ----
/* Nonzero means don't output line number information. */
static int no_line_commands;
+ static int normal_line_commands;
/* dump_only means inhibit output of the preprocessed text
and instead output the definitions of all user-defined
***************
*** 1002,1007 ****
--- 1003,1009 ----
dollars_in_ident = DOLLARS_IN_IDENTIFIERS > 0;
no_line_commands = 0;
+ normal_line_commands = 0;
no_trigraphs = 1;
dump_macros = dump_none;
no_output = 0;
***************
*** 1283,1288 ****
--- 1285,1294 ----
no_line_commands = 1;
break;
+ case 'L':
+ normal_line_commands = 1;
+ break;
+
case '$': /* Don't include $ in identifiers. */
dollars_in_ident = 0;
break;
***************
*** 6822,6832 ****
#else
sprintf (line_cmd_buf, "# %d \"%s\"", ip->lineno, ip->nominal_fname);
#endif
! if (file_change != same_file)
! strcat (line_cmd_buf, file_change == enter_file ? " 1" : " 2");
! /* Tell cc1 if following text comes from a system header file. */
! if (ip->system_header_p)
! strcat (line_cmd_buf, " 3");
len = strlen (line_cmd_buf);
line_cmd_buf[len++] = '\n';
check_expand (op, len + 1);
--- 6828,6840 ----
#else
sprintf (line_cmd_buf, "# %d \"%s\"", ip->lineno, ip->nominal_fname);
#endif
! if (normal_line_commands == 0) {
! if (file_change != same_file)
! strcat (line_cmd_buf, file_change == enter_file ? " 1" : " 2");
! /* Tell cc1 if following text comes from a system header file. */
! if (ip->system_header_p)
! strcat (line_cmd_buf, " 3");
! }
len = strlen (line_cmd_buf);
line_cmd_buf[len++] = '\n';
check_expand (op, len + 1);
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads