mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-04-11 11:51:50 +00:00
[qfcc] Give anonymous block instances a name
They need a valid name for the stricter checks. The name is taken from the interface name, and since that needs to be unique, prepending a `.` should be enough.
This commit is contained in:
parent
14ac685330
commit
3eef231d70
1 changed files with 4 additions and 2 deletions
|
@ -149,9 +149,11 @@ glsl_declare_block_instance (glsl_block_t *block, symbol_t *instance_name)
|
|||
internal_error (0, "%s interface not defined", interface_name);
|
||||
}
|
||||
auto interface = interface_sym->namespace;
|
||||
bool transparent = false;
|
||||
|
||||
if (!instance_name) {
|
||||
instance_name = new_symbol ("");
|
||||
instance_name = new_symbol (va (0, ".%s", block->name->name));
|
||||
transparent = true;
|
||||
}
|
||||
block->instance_name = instance_name;
|
||||
auto type = new_type ();
|
||||
|
@ -182,7 +184,7 @@ glsl_declare_block_instance (glsl_block_t *block, symbol_t *instance_name)
|
|||
block_sym->namespace = block->members;
|
||||
symtab_addsymbol (interface, block->name);
|
||||
}
|
||||
if (!instance_name->name[0]) {
|
||||
if (transparent) {
|
||||
for (auto sym = block->members->symbols; sym; sym = sym->next) {
|
||||
auto new = new_symbol (sym->name);
|
||||
new->sy_type = sy_convert;
|
||||
|
|
Loading…
Reference in a new issue