summaryrefslogtreecommitdiff
path: root/ast_to_hir.cpp
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2010-03-11 14:48:51 -0800
committerIan Romanick <ian.d.romanick@intel.com>2010-03-11 14:48:51 -0800
commitcdb8d54b6808b13092cb85e44cf02e4e91c3a669 (patch)
tree5f650d7c34fc201c116d3753255db4aa6e707fd4 /ast_to_hir.cpp
parent7e3ed40200ac87c50b84f73409ca0df48fc6a25d (diff)
Default function parameters to 'in' instead of auto
Diffstat (limited to 'ast_to_hir.cpp')
-rw-r--r--ast_to_hir.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/ast_to_hir.cpp b/ast_to_hir.cpp
index 1fea7299db..c791aec3e2 100644
--- a/ast_to_hir.cpp
+++ b/ast_to_hir.cpp
@@ -1007,7 +1007,12 @@ ast_parameter_declarator::hir(exec_list *instructions,
* FINISHME: complete handling of constant expressions.
*/
+ /* Apply any specified qualifiers to the parameter declaration. Note that
+ * for function parameters the default mode is 'in'.
+ */
apply_type_qualifier_to_variable(& this->type->qualifier, var, state);
+ if (var->mode == ir_var_auto)
+ var->mode = ir_var_in;
instructions->push_tail(var);
@@ -1155,7 +1160,7 @@ ast_function_definition::hir(exec_list *instructions,
foreach_iter(exec_list_iterator, iter, parameters) {
ir_variable *const var = (ir_variable *) iter.get();
- assert(var->mode == ir_op_var_decl);
+ assert(((ir_instruction *)var)->mode == ir_op_var_decl);
iter.remove();
instructions->push_tail(var);