[PATCH] D26843: Make sizeof expression context partially evaluated

Paulo Matos via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 18 07:36:08 PST 2016


pmatos added a comment.

In https://reviews.llvm.org/D26843#599673, @EricWF wrote:

> > But that is not valid in C afaik and in C++ I get:
> > 
> >   error: invalid use of non-static data member 'm'
> >     int x = sizeof(T::m);
> >                    ~~~^
> > 
> > 
> > Can you post a full reproducible example of what the change breaks?
>
> That is a full reproducible example because it's valid C++. Clang currently compiles it <http://melpon.org/wandbox/permlink/tSMVyoCLPsrKfZ2P>.


But what was in the link was:

  typedef struct { int m; } T;
  int x = sizeof(T);
  int main() {}

This is different from your initial snippet and compiles fine with my patch.


https://reviews.llvm.org/D26843





More information about the cfe-commits mailing list