This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: bug in tradcpp.c and patch fixing it


Thanks, I've committed this to 3.1.

Neil.

Sam Steingold wrote:-

> --- gcc/ChangeLog.old	Thu Aug 16 11:01:10 2001
> +++ gcc/ChangeLog	Thu Aug 16 11:06:36 2001
> @@ -1,3 +1,8 @@
> +2001-08-16  Sam Steingold  <sds@gnu.org>
> +
> +	* tradcpp.c (rescan): define obufp_before_macroname before RECACHE
> +	(RECACHE): keep obufp_before_macroname up to date
> +
>  20010617 Release Manager
>  
>          * GCC 3.0 Released.
> --- gcc/tradcpp.c.old	Thu Aug 16 11:01:10 2001
> +++ gcc/tradcpp.c	Thu Aug 16 11:05:46 2001
> @@ -1220,6 +1220,9 @@
>    /* Record position of last `real' newline.  */
>    U_CHAR *beg_of_line;
>  
> +  /* This has to be a global bacause of RECACHE */
> +  U_CHAR *obufp_before_macroname = NULL;
> +
>  /* Pop the innermost input stack level, assuming it is a macro expansion.  */
>  
>  #define POPMACRO \
> @@ -1237,6 +1240,7 @@
>       op->bufp = obp;			\
>       check_expand (op, limit - ibp);	\
>       beg_of_line = 0;			\
> +     obufp_before_macroname += op->bufp - obp;  \
>       obp = op->bufp; } while (0)
>  
>    if (no_output && instack[indepth].fname != 0)
> @@ -1647,7 +1651,8 @@
>  	     hp = hp->next) {
>  
>  	  if (hp->length == ident_length) {
> -	    U_CHAR *obufp_before_macroname;
> +	    /* obufp_before_macroname is used only in this block,
> +               but it has to be global because of RECACHE */
>  	    int op_lineno_before_macroname;
>  	    register int i = ident_length;
>  	    register U_CHAR *p = hp->name;
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]