I reverted this patch, and fix the analyzer in r92723. 2010/1/5 Zhongxing Xu <[email protected]>
> > > 2010/1/5 Chris Lattner <[email protected]> > >> >> On Jan 4, 2010, at 10:53 PM, Chandler Carruth wrote: >> >> >> >> >> Sorry, I didn't quite understand your point. We are already asserting >> the >> >> QualType T is canonical on the entry to the method. >> >> >> >> The patch makes sure the element type is canonical when we pass it to >> the >> >> method getUnqualifiedArrayType(). >> > >> > I think what Chris is getting at is that the element type should >> > already be canonical if the array type is canonical (by my reading of >> > getCanonicalType)? >> >> Right, if an arraytype is canonical, then its element is guaranteed to be >> canonical. >> >> -Chris >> > > I see. I added the assertion. > This code still crashes clang: > > $ clang -cc1 -analyze -checker-cfref crash.c > > #include <string.h> > typedef unsigned char Byte; > void doit (char *data, int len) { > if (len) { > Byte buf[len]; > memcpy(buf, data, len); > } > } > > > The problem is that the canonical type of type 'Byte' is itself. >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
