- // consider this now.
- if (Ty->isArrayType())
- if (cast<const ArrayType>(Ty)->getNumElements() !=
- cast<const ArrayType>(Ty2)->getNumElements()) return false;
+ // and that method types can be varargs or not. Consider this now.
+ if (const ArrayType *ATy = dyn_cast<ArrayType>(Ty)) {
+ if (ATy->getNumElements() != cast<const ArrayType>(Ty2)->getNumElements())
+ return false;
+ } else if (const MethodType *MTy = dyn_cast<MethodType>(Ty)) {
+ if (MTy->isVarArg() != cast<const MethodType>(Ty2)->isVarArg())
+ return false;
+ }
+