Revert "glcpp: Rewrite line-continuation support to act globally."
[mesa.git] / src / glsl / ast_function.cpp
index 8bf0ba2a8767b41536539b3563bf76440230d2ad..ea3282c5f9428e84a7630cf2f2f5575d8b07705d 100644 (file)
@@ -153,21 +153,21 @@ verify_parameter_modes(_mesa_glsl_parse_state *state,
         }
 
         ir_variable *var = actual->variable_referenced();
-        if (var) {
-           if (var->read_only) {
-              _mesa_glsl_error(&loc, state,
-                               "function parameter '%s %s' references the "
-                               "read-only variable '%s'",
-                               mode, formal->name,
-                               actual->variable_referenced()->name);
-              return false;
-           } else if (!actual->is_lvalue()) {
-              _mesa_glsl_error(&loc, state,
-                               "function parameter '%s %s' is not an lvalue",
-                               mode, formal->name);
-              return false;
-           }
+        if (var)
            var->assigned = true;
+
+        if (var && var->read_only) {
+           _mesa_glsl_error(&loc, state,
+                            "function parameter '%s %s' references the "
+                            "read-only variable '%s'",
+                            mode, formal->name,
+                            actual->variable_referenced()->name);
+           return false;
+        } else if (!actual->is_lvalue()) {
+           _mesa_glsl_error(&loc, state,
+                            "function parameter '%s %s' is not an lvalue",
+                            mode, formal->name);
+           return false;
         }
       }
 
@@ -278,7 +278,7 @@ generate_call(exec_list *instructions, ir_function_signature *sig,
     * Function calls were first allowed to be constant expressions in GLSL 1.20.
     */
    if (state->language_version >= 120) {
-      ir_constant *value = sig->constant_expression_value(actual_parameters);
+      ir_constant *value = sig->constant_expression_value(actual_parameters, NULL);
       if (value != NULL) {
         return value;
       }
@@ -452,8 +452,7 @@ convert_component(ir_rvalue *src, const glsl_type *desired_type)
         result = new(ctx) ir_expression(ir_unop_i2u, src);
         break;
       case GLSL_TYPE_FLOAT:
-        result = new(ctx) ir_expression(ir_unop_i2u,
-                 new(ctx) ir_expression(ir_unop_f2i, src));
+        result = new(ctx) ir_expression(ir_unop_f2u, src);
         break;
       case GLSL_TYPE_BOOL:
         result = new(ctx) ir_expression(ir_unop_i2u,