[cfe-commits] r63347 - in /cfe/trunk: include/clang/Analysis/PathSensitive/BasicValueFactory.h include/clang/Analysis/PathSensitive/MemRegion.h include/clang/Analysis/PathSensitive/SVals.h lib/Analysis/MemRegion.cpp lib/Analysis/RegionStore.cpp l

Zhongxing Xu xuzhongxing at gmail.com
Thu Jan 29 21:15:36 PST 2009


> 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
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20090130/ba8c7269/attachment.html>


More information about the cfe-commits mailing list