summaryrefslogtreecommitdiffstats
path: root/ast_to_hir.cpp
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2010-04-28 12:44:24 -0700
committerIan Romanick <[email protected]>2010-04-28 15:34:52 -0700
commitbff6013d469b3d4e54cdc5731801c56994a523ec (patch)
treecfbd67f0ab174146df188d4e7563dafbe0084fc8 /ast_to_hir.cpp
parent0d605cb97c9cd2f9a170e3aa15bdf4021a75fc14 (diff)
Factor out parameter list replacement for later reuse.
Diffstat (limited to 'ast_to_hir.cpp')
-rw-r--r--ast_to_hir.cpp13
1 files changed, 1 insertions, 12 deletions
diff --git a/ast_to_hir.cpp b/ast_to_hir.cpp
index 52e372c7e49..1dc4ea25b21 100644
--- a/ast_to_hir.cpp
+++ b/ast_to_hir.cpp
@@ -1973,20 +1973,9 @@ ast_function::hir(exec_list *instructions,
if (sig == NULL) {
sig = new ir_function_signature(return_type);
f->add_signature(sig);
- } else if (is_definition) {
- /* Destroy all of the previous parameter information. The previous
- * parameter information comes from the function prototype, and it can
- * either include invalid parameter names or may not have names at all.
- */
- foreach_iter(exec_list_iterator, iter, sig->parameters) {
- assert(((ir_instruction *) iter.get())->as_variable() != NULL);
-
- iter.remove();
- delete iter.get();
- }
}
- hir_parameters.move_nodes_to(& sig->parameters);
+ sig->replace_parameters(&hir_parameters);
signature = sig;
/* Function declarations (prototypes) do not have r-values.