+ case PSI_T_SIZEOF:
+ if (psi_decl_type_validate(data, exp->data.dtyp, 0, NULL)) {
+ struct psi_decl_type *dtyp = exp->data.dtyp;
+
+ exp->type = PSI_T_UINT64;
+ exp->data.ival.u64 = psi_decl_type_get_size(dtyp, NULL);
+ psi_decl_type_free(&dtyp);
+ return true;
+ } else {
+ data->error(data, exp->token, PSI_WARNING,
+ "Cannot compute sizeof(%s) (%u)",
+ exp->data.dtyp->name, exp->data.dtyp->type);
+ }
+ break;
+