--| Copyright (c) 1993-2006 University of Southern California and contributors. --| All rights reserved. --| Your use of this work is governed under the terms of the GNU General --| Public License version 2. -- This is a test control file test_name chg-generic-c-inline-function test_description A system has a generic class FOO with an inline C external function that just returns its argument. When another class creates an instance of FOO [DOUBLE] and calls the external function on it, the result is correct. Then the type in the creation expression is changed to FOO [ARRAY [DOUBLE]] and changes are melted. Finally the creation expression type is changed back to FOO [DOUBLE] and changes are melted again. System execution then produces the wrong output. define EXPRESSION "(create {TEST1 [DOUBLE]}).value (13)" copy_sub Ace $TEST Ace copy_sub test.e $CLUSTER test.e copy_raw test1.e $CLUSTER test1.e compile_frozen compile_result ok c_compile_work c_compile_result ok execute_work NONE exec_output1 execute_result ok compare exec_output1 output1 define EXPRESSION "(create {TEST1 [ARRAY [DOUBLE]]}).value (Void)" copy_sub test.e $CLUSTER test.e compile_melted compile_result ok c_compile_work c_compile_result ok execute_work NONE exec_output2 execute_result ok compare exec_output2 output2 define EXPRESSION "(create {TEST1 [DOUBLE]}).value (15)" copy_sub test.e $CLUSTER test.e compile_melted compile_result ok execute_work NONE exec_output3 execute_result ok compare exec_output3 output3 test_end