Add an isAggregateType predicate.
authorDan Gohman <gohman@apple.com>
Fri, 30 May 2008 22:40:06 +0000 (22:40 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 30 May 2008 22:40:06 +0000 (22:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51794 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Type.h

index c19e34b35dd11ee3c3ad055e7af8904971d4e037..fe3c392c7c6cd03f597aca9ead7c76c7800fcc7f 100644 (file)
@@ -230,6 +230,15 @@ public:
             ID == IntegerTyID || ID == PointerTyID || ID == VectorTyID;
   }
 
+  /// isAggregateType - Return true if the type is an aggregate type. This
+  /// means it is valid as the first operand of an insertvalue or
+  /// extractvalue instruction. This includes struct and array types, but
+  /// does not include vector types.
+  ///
+  inline bool isAggregateType() const {
+    return ID == StructTyID || ID == ArrayTyID;
+  }
+
   /// isSized - Return true if it makes sense to take the size of this type.  To
   /// get the actual size for a particular target, it is reasonable to use the
   /// TargetData subsystem to do this.