diff --git a/src/ifcparse/IfcFile.cpp b/src/ifcparse/IfcFile.cpp index 77610ec2f2..18523a158a 100644 --- a/src/ifcparse/IfcFile.cpp +++ b/src/ifcparse/IfcFile.cpp @@ -60,12 +60,14 @@ namespace { } else if (t.type == IfcParse::Token_BOOL) { fn(IfcParse::TokenFunc::asBool(t)); } else if (t.type == IfcParse::Token_ENUMERATION) { - if (decl->as_enumeration_type()) { + if (decl && decl->as_enumeration_type()) { try { fn(EnumerationReference(decl->as_enumeration_type(), decl->as_enumeration_type()->lookup_enum_offset(IfcParse::TokenFunc::asStringRef(t)))); } catch (IfcParse::IfcException& e) { Logger::Error(e); } + } else { + Logger::Error("Untyped enumeration encountered"); } } else if (t.type == IfcParse::Token_FLOAT) { fn(IfcParse::TokenFunc::asFloat(t));