> Added: cfe/trunk/test/Analysis/rdar-6541136.c > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/rdar-6541136.c?rev=63347&view=auto > > > ============================================================================== > --- cfe/trunk/test/Analysis/rdar-6541136.c (added) > +++ cfe/trunk/test/Analysis/rdar-6541136.c Thu Jan 29 18:08:43 2009 > @@ -0,0 +1,20 @@ > +// clang -verify -analyze -checker-cfref -analyzer-store-basic %s > + > +struct tea_cheese { unsigned magic; }; > +typedef struct tea_cheese kernel_tea_cheese_t; > +extern kernel_tea_cheese_t _wonky_gesticulate_cheese; > + > +// This test case exercises the ElementRegion::getRValueType() logic. > +// All it tests is that it does not crash or do anything weird. > +// The out-of-bounds-access on line 19 is caught using the region store > variant. > + > +void foo( void ) > +{ > + kernel_tea_cheese_t *wonky = &_wonky_gesticulate_cheese; > + struct load_wine *cmd = (void*) &wonky[1];
This is like an ill use of the type system. What do you think we emit a warning instead of following it. That is, we emit a warning when the array region does not have array type or pointer type. > > + cmd = cmd; > + char *p = (void*) &wonky[1]; > + *p = 1; > + kernel_tea_cheese_t *q = &wonky[1]; > + kernel_tea_cheese_t r = *q; // no-warning > +} > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
