Hi Nick,

On Fri, Feb 16 2018, Nick Clifton wrote:
> Hi David,
>
>   Attached is a revised version of the patch which I hope addresses all 
>   of your (very helpful) comments on the v3 patch.
>
>   OK to apply once the sources are back on stage 1 ?
>
> Cheers
>   Nick
>
> gcc/ChangeLog
> 2018-02-09  Nick Clifton  <ni...@redhat.com>
>
>       PR 84195
>       * tree.c (escaped_string): New class.  Converts an unescaped
>       string into its escaped equivalent.
>       (warn_deprecated_use): Use the new class to convert the
>       deprecation message, if present.
>       (test_escaped_strings): New self test.
>       (test_c_tests): Add test_escaped_strings.
>       * doc/extend.texi (deprecated): Add a note that the
>       deprecation message is affected by the -fmessage-length
>       option, and that control characters will be escaped.
>       (#pragma GCC error): Document this pragma.
>       (#pragma GCC warning): Likewise.
>       * doc/invoke.texi (-fmessage-length): Document this option's
>       effect on the #warning and #error preprocessor directives and
>       the deprecated attribute.
>       

I'm getting a bootstrap failure:

/home/mjambor/gcc/trunk/src/gcc/tree.c:12457:20: error: cast from type ‘const 
char*’ to type ‘char*’ casts away qualifiers [-Werror=cast-qual]
   m_str = (char *) unescaped;

that I believe is caused by this patch, because the warning complains
about the newly added code:

> --- gcc/tree.c        (revision 257653)
> +++ gcc/tree.c        (working copy)
> @@ -12416,11 +12416,101 @@
> 

...

> 
> +/* PR 84195: Replace control characters in "unescaped" with their
> +   escaped equivalents.  Allow newlines if -fmessage-length has
> +   been set to a non-zero value.  This is done here, rather than
> +   where the attribute is recorded as the message length can
> +   change between these two locations.  */
> +
> +void
> +escaped_string::escape (const char * unescaped)
> +{
> +  char *escaped;
> +  size_t i, new_i, len;
> +
> +  if (m_owned)
> +    free (m_str);
> +
> +  m_str = (char *) unescaped;

specifically about the line above, and the complaint seems quite valid.

Sorry for bad news,

Martin

Reply via email to