]> granicus.if.org Git - clang/commitdiff
Array and struct variables do have lvalue. For example,
authorZhongxing Xu <xuzhongxing@gmail.com>
Fri, 17 Oct 2008 01:51:27 +0000 (01:51 +0000)
committerZhongxing Xu <xuzhongxing@gmail.com>
Fri, 17 Oct 2008 01:51:27 +0000 (01:51 +0000)
struct s {};
void f() {
  int a[10];
  int (*p)[10];
  p = &a;
  (*p)[3] =1;

  struct s d;
  struct s *q;
  q = &d;
}

We return the corresponding MemRegionVal for them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57664 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/BasicStore.cpp

index 000ea1bef2d878e6976d605561c1e78ecaa1450d..9d8a9acda5099965affe98390b5d678657b33d85 100644 (file)
@@ -79,8 +79,6 @@ StoreManager* clang::CreateBasicStoreManager(GRStateManager& StMgr) {
   return new BasicStoreManager(StMgr);
 }
 RVal BasicStoreManager::getLValueVar(const GRState* St, const VarDecl* VD) {
-  QualType T = VD->getType();
-  assert(!T->isArrayType() && "Array and struct variable have no lvalue.");
   return lval::MemRegionVal(MRMgr.getVarRegion(VD));
 }