On Mon, Jun 18, 2018 at 01:48:05PM -0400, Jason Merrill wrote: > On Mon, Jun 18, 2018 at 12:41 PM, Jakub Jelinek <ja...@redhat.com> wrote: > > On Mon, Jun 18, 2018 at 08:34:28AM -0600, Jeff Law wrote: > >> On 06/18/2018 08:08 AM, Prathamesh Kulkarni wrote: > >> > On 18 June 2018 at 19:28, Nick Clifton <ni...@redhat.com> wrote: > >> >> Hi Prathamesh, > >> >> > >> >>> I am getting the following build error with trunk: > >> >>> ../../gcc/gcc/tree.c: In member function ‘void > >> >>> escaped_string::escape(const char*)’: > >> >>> ../../gcc/gcc/tree.c:12457:20: error: cast from type ‘const char*’ to > >> >>> type ‘char*’ casts away qualifiers [-Werror=cast-qual] > >> >>> m_str = (char *) unescaped; > >> >>> ^~~~~~~~~ > >> >>> I think this is caused by r261697 in tree.c: > >> >>> m_str = (char *) unescaped; > >> >>> > >> >>> The patch changes it to const_cast<char *> (unescaped) which fixes the > >> >>> build for me. > >> >> > >> >> I cannot approve this patch, but I can say thanks very much for catching > >> >> this problem and proposing a fix. I guess that I must be using an old > >> >> version of g++ for my testing as this error did not show up. :-( > >> > Hi Nick, > >> > Thanks for confirming. I went ahead and committed the patch in r261700 > >> > since I guess it's trivial enough to fit under the "obvious" rule. > >> Yes. > >> > >> Thanks for taking care of it. > > > > Shouldn't we use > > m_str = CONST_CAST (char *, unescaped); > > instead? That is what most similar spots use. > > That macro seems obsolete now that we compile as C++.
But shouldn't we then remove/poison those macros and replace all uses? I don't care much if we use CONST_CAST or const_cast, but care about consistency. Jakub