+static bool declaration_is_definition(const entity_t *entity)
+{
+ switch (entity->kind) {
+ case ENTITY_VARIABLE:
+ return entity->declaration.storage_class != STORAGE_CLASS_EXTERN;
+ case ENTITY_FUNCTION:
+ return entity->function.statement != NULL;
+ case ENTITY_PARAMETER:
+ case ENTITY_COMPOUND_MEMBER:
+ return false;
+ case ENTITY_TYPEDEF:
+ case ENTITY_ENUM:
+ case ENTITY_ENUM_VALUE:
+ case ENTITY_NAMESPACE:
+ case ENTITY_LABEL:
+ case ENTITY_LOCAL_LABEL:
+ break;
+ }
+ panic("declaration_is_definition called on non-declaration");
+}
+