Test that const declarations include initializers.

Fixes dataType6.frag, and also array2.frag for an unexpected but valid
reason.
This commit is contained in:
Eric Anholt
2010-03-31 09:29:33 -10:00
committed by Ian Romanick
parent e0800062da
commit 0ed6125725

View File

@@ -1329,6 +1329,17 @@ ast_declarator_list::hir(exec_list *instructions,
}
}
/* From page 23 (page 29 of the PDF) of the GLSL 1.10 spec:
*
* "It is an error to write to a const variable outside of
* its declaration, so they must be initialized when
* declared."
*/
if (this->type->qualifier.constant && decl->initializer == NULL) {
_mesa_glsl_error(& loc, state,
"const declaration of `%s' must be initialized");
}
/* Add the vairable to the symbol table after processing the initializer.
* This differs from most C-like languages, but it follows the GLSL
* specification. From page 28 (page 34 of the PDF) of the GLSL 1.50