}
if (const AnonTypedRegion* ATR = dyn_cast<AnonTypedRegion>(R)) {
+#if 0
+ // FIXME: This logic doesn't really work, as we can have all sorts of
+ // weird cases. For example, this crashes on test case 'rdar-6442306-1.m'.
+ // The weird cases come in when arbitrary casting comes into play, violating
+ // any type-safe programming.
+
GRStateRef state(St, StateMgr);
// Get the size of the super region in bytes.
(SSize * getBasicVals().getValue(8, SSize.getBitWidth(), false)) / ESize;
return NonLoc::MakeVal(getBasicVals(), S);
+#else
+ ATR = ATR;
+ return UnknownVal();
+#endif
}
if (const FieldRegion* FR = dyn_cast<FieldRegion>(R)) {
-// RUN: clang -analyze -checker-simple -verify %s &&
-// RUN: clang -analyze -checker-cfref -verify %s
+// RUN: clang -analyze -checker-simple -analyzer-store-basic -verify %s &&
+// RUN: clang -analyze -checker-cfref -analyzer-store-basic -verify %s &&
+// RUN: clang -analyze -checker-cfref -analyzer-store-region -verify %s
#include <stdarg.h>
-// RUN: clang -analyze -checker-cfref %s --analyzer-store-basic -verify
-// DISABLE: clang -analyze -checker-cfref %s --analyzer-store-region -verify
+// RUN: clang -analyze -checker-cfref %s --analyzer-store-basic -verify &&
+// RUN: clang -analyze -checker-cfref %s --analyzer-store-region -verify
typedef int bar_return_t;
typedef struct {