about summary refs log tree commit diff homepage
path: root/include/expr
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-06-09 08:42:08 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-06-09 08:42:08 +0000
commit58d1592fa3fd84aded956801183949b9c710490e (patch)
tree097d091d23bf0f5906f9e3542531c5ddb39c4588 /include/expr
parent54d8a1aee4b05daee1244ee1d34df8059a40d5a9 (diff)
downloadklee-58d1592fa3fd84aded956801183949b9c710490e.tar.gz
More constant Array support.
 - The are parsed, printed, and solved now.

 - Remove some members of ArrayDecl which are only duplicates of Array members.

 - KLEE still doesn't create these, but you can write them by hand.

The EXE style constant array optimization for STP (turning the initial writes
into asserts) is now only a stones throw away, but I need to leave something fun
to do tomorrow. :)


git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@73133 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/expr')
-rw-r--r--include/expr/Parser.h13
1 files changed, 2 insertions, 11 deletions
diff --git a/include/expr/Parser.h b/include/expr/Parser.h
index 65105f12..f67e27ab 100644
--- a/include/expr/Parser.h
+++ b/include/expr/Parser.h
@@ -71,16 +71,12 @@ namespace expr {
   ///
   /// For example:
   ///   array obj[] : w32 -> w8 = symbolic
-  ///   array obj[32] : w32 -> w8 = { ... }
+  ///   array obj[32] : w32 -> w8 = [ ... ]
   class ArrayDecl : public Decl {
   public:
     /// Name - The name of this array.
     const Identifier *Name;
 
-    /// Size - The maximum array size (or 0 if unspecified). Concrete
-    /// arrays always are specified with a size.
-    const uint64_t Size;
-
     /// Domain - The width of indices.
     const unsigned Domain;
 
@@ -90,17 +86,12 @@ namespace expr {
     /// Root - The root array object defined by this decl.
     const Array *Root;
 
-    /// Contents - The initial contents of the array. The array is
-    /// symbolic if no contents are specified. The contained
-    /// expressions are guaranteed to be constants.
-    const std::vector<ExprHandle> Contents;
-
   public:
     ArrayDecl(const Identifier *_Name, uint64_t _Size, 
               unsigned _Domain, unsigned _Range,
               const Array *_Root)
       : Decl(ArrayDeclKind), Name(_Name), 
-        Size(_Size), Domain(_Domain), Range(_Range), 
+        Domain(_Domain), Range(_Range), 
         Root(_Root) {
     }