struct symbol *sym;
yylval.theclass.theclass = Class;
- sym = lookup_struct_typedef (copy.c_str (),
- par_state->expression_context_block, 1);
+ sym = lookup_struct_noerr (copy.c_str (),
+ par_state->expression_context_block);
if (sym)
yylval.theclass.type = sym->type ();
return CLASSNAME;
static const registry<objfile>::key<unsigned int> objc_objfile_data;
/* Lookup a structure type named "struct NAME", visible in lexical
- block BLOCK. If NOERR is nonzero, return zero if NAME is not
- suitably defined. */
+ block BLOCK. Return nullptr if no such type is found. */
struct symbol *
-lookup_struct_typedef (const char *name, const struct block *block, int noerr)
+lookup_struct_noerr (const char *name, const struct block *block)
{
- struct symbol *sym;
-
- sym = lookup_symbol (name, block, SEARCH_STRUCT_DOMAIN, 0).symbol;
-
- if (sym == NULL)
- {
- if (noerr)
- return 0;
- else
- error (_("No struct type named %s."), name);
- }
- if (sym->type ()->code () != TYPE_CODE_STRUCT)
- {
- if (noerr)
- return 0;
- else
- error (_("This context has class, union or enum %s, not a struct."),
- name);
- }
+ symbol *sym = lookup_symbol (name, block, SEARCH_STRUCT_DOMAIN, 0).symbol;
+ if (sym == nullptr || sym->type ()->code () != TYPE_CODE_STRUCT)
+ return nullptr;
return sym;
}
else
error (_("NSString: internal error -- no way to create new NSString"));
- sym = lookup_struct_typedef("NSString", 0, 1);
+ sym = lookup_struct_noerr ("NSString", 0);
if (sym == NULL)
- sym = lookup_struct_typedef("NXString", 0, 1);
+ sym = lookup_struct_noerr ("NXString", 0);
if (sym == NULL)
type = builtin_type (gdbarch)->builtin_data_ptr;
else
extern void add_msglist (struct stoken *str, int addcolon);
extern int end_msglist (struct parser_state *);
-struct symbol *lookup_struct_typedef (const char *name,
- const struct block *block,
- int noerr);
+struct symbol *lookup_struct_noerr (const char *name,
+ const struct block *block);
#endif /* GDB_OBJC_LANG_H */