if (process_qualifier_constant(state, &loc, "location",
qual->location, &qual_location)) {
fields[i].location = VARYING_SLOT_VAR0 + qual_location;
- expl_location = fields[i].location + 1;
+ expl_location = fields[i].location +
+ fields[i].type->count_attribute_slots(false);
}
} else {
if (layout && layout->flags.q.explicit_location) {
fields[i].location = expl_location;
- expl_location = expl_location + 1;
+ expl_location += fields[i].type->count_attribute_slots(false);
} else {
fields[i].location = -1;
}
state->struct_specifier_depth++;
- unsigned expl_location = -1;
+ unsigned expl_location = 0;
if (layout && layout->flags.q.explicit_location) {
if (!process_qualifier_constant(state, &loc, "location",
layout->location, &expl_location)) {
return NULL;
}
- unsigned expl_location = -1;
+ unsigned expl_location = 0;
if (layout.flags.q.explicit_location) {
if (!process_qualifier_constant(state, &loc, "location",
layout.location, &expl_location)) {