static struct block_symbol cp_basic_lookup_symbol (const char *name, const struct block *block, const domain_enum domain, int is_in_anonymous) { struct block_symbol sym; sym = lookup_symbol_in_static_block (name, block, domain); if (sym.symbol != NULL) return sym; if (is_in_anonymous) { /* Symbols defined in anonymous namespaces have external linkage but should be treated as local to a single file nonetheless. So we only search the current file's global block. */ const struct block *global_block = block_global_block (block); if (global_block != NULL) { sym.symbol = lookup_symbol_in_block (name, global_block, domain); sym.block = global_block; } } else sym = lookup_global_symbol (name, block, domain); return sym; }
static PyObject * blpy_get_global_block (PyObject *self, void *closure) { const struct block *block; const struct block *global_block; block_object *self_obj = (block_object *) self; BLPY_REQUIRE_VALID (self, block); global_block = block_global_block (block); return block_to_block_object (global_block, self_obj->objfile); }