gcc_assert (TREE_CODE (result) == TYPE_DECL);
result = TREE_TYPE (result);
- return result;
+ return TREE_CODE (result) == ERROR_MARK ? nullptr : result;
}
static gcc_type
int is_unsigned, unsigned long size_in_bytes,
const char *builtin_name)
{
- if (!builtin_name)
- return plugin_int_type_v0 (self, is_unsigned, size_in_bytes);
-
- tree result = safe_lookup_builtin_type (builtin_name);
- gcc_assert (!result || TREE_CODE (result) == INTEGER_TYPE);
-
- return plugin_int_check (self, is_unsigned, size_in_bytes, result);
+ if (builtin_name != nullptr)
+ {
+ tree result = safe_lookup_builtin_type (builtin_name);
+ gcc_assert (!result || TREE_CODE (result) == INTEGER_TYPE);
+ if (result != nullptr)
+ return plugin_int_check (self, is_unsigned, size_in_bytes, result);
+ }
+ return plugin_int_type_v0 (self, is_unsigned, size_in_bytes);
}
gcc_type
tree result = safe_lookup_builtin_type (builtin_name);
if (!result)
- return convert_out (error_mark_node);
+ return plugin_float_type_v0 (self, size_in_bytes);
gcc_assert (SCALAR_FLOAT_TYPE_P (result));
gcc_assert (BITS_PER_UNIT * size_in_bytes == TYPE_PRECISION (result));