Add missing NULL check in CanBeType
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
//@error
|
||||
//assigning mismatched polymorphic types
|
||||
|
||||
export void foo(floating$0 bar) {
|
||||
export void foo(uniform floating$0 bar) {
|
||||
floating$1 baz = bar;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//@error
|
||||
//assigning mismatched polymorphic types
|
||||
|
||||
export void foo(number$0 bar) {
|
||||
floating$0 baz = bar;
|
||||
export void foo(uniform floating$0 bar) {
|
||||
integer baz = bar;
|
||||
}
|
||||
|
||||
20
type.cpp
20
type.cpp
@@ -855,15 +855,17 @@ PolyType::CanBeType(const Type *t) const {
|
||||
|
||||
const AtomicType *at = CastType<AtomicType>(t);
|
||||
|
||||
switch (restriction) {
|
||||
case TYPE_INTEGER:
|
||||
return at->IsIntType();
|
||||
case TYPE_FLOATING:
|
||||
return at->IsFloatType();
|
||||
case TYPE_NUMBER:
|
||||
return at->IsIntType() || at->IsFloatType();
|
||||
default:
|
||||
FATAL("Unmatched case for polymorphic restriction");
|
||||
if (at) {
|
||||
switch (restriction) {
|
||||
case TYPE_INTEGER:
|
||||
return at->IsIntType();
|
||||
case TYPE_FLOATING:
|
||||
return at->IsFloatType();
|
||||
case TYPE_NUMBER:
|
||||
return at->IsIntType() || at->IsFloatType();
|
||||
default:
|
||||
FATAL("Unmatched case for polymorphic restriction");
|
||||
}
|
||||
}
|
||||
|
||||
// not an atomic type or polymorphic type
|
||||
|
||||
Reference in New Issue
Block a user