On Wed, Nov 18, 2020 at 11:51:00AM -0800, Linus Torvalds wrote: > On Wed, Nov 18, 2020 at 11:17 AM Luc Van Oostenryck > <luc.vanoostenryck@xxxxxxxxx> wrote: > > > > I don't think it's a good idea. The focus now is all about dropping > > the qualifiers but in code like: > > const int x; > > typeof(c) y; > > don't we want 'y' to also have the type 'const int'? > > I assume you meant "typeof(x)". But yes, absolutely. Yes, sure. > Which is why my suggested example patch had that explicit test for > "is_lvalue()". So only for non-lvalues would it strip the qualifiers. > > So "typeof(((void)0,x)) y;" would be "int", because that expression > inside the typeof isn't an lvalue. Oh yes, sorry. For some reasons I had things upside down. > But if you have something that is already doing the generic case, then > that's obviously better. My suggestion was more of a "we can zero in > on just that typeof case" thing. I just sent the series but it's not generic. If I read the standard correctly (big 'if'), in: volatile int x; typeof(++x) y; 'y' should have the type 'volatile int' and GCC interpret it so. -- Luc