Changeset 11544


Ignore:
Timestamp:
Sep 1, 2018 10:43:41 AM (16 months ago)
Author:
Jonathan Kämpe
Message:

#5670 Fixed bug in r11541

Location:
trunk/Compiler/ModelicaCBackEnd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Compiler/ModelicaCBackEnd/src/jastadd/CCodeGen/CCodeGenExternalCeval.jrag

    r11543 r11544  
    159159        protected void printExt(FExternalObjectType type) {
    160160            FExternalStmt stmt = type.myDestructorStmt();
    161             type.myConstructorStmt().setExternalArgumentAliases(cgc, name(), acquireTemp(name()));
     161            cgc.setAlias(stmt.varsToSerialize().iterator().next(), name());
    162162            stmt.setCodeGenContext(cgc);
    163163            stmt.prettyPrint_C(p, str, indent());
  • trunk/Compiler/ModelicaCBackEnd/test/modelica/CCodeGenExternalCevalTests.mo

    r11543 r11544  
    565565
    566566---
    567         destructor(o1_v);
     567        destructor(tmp_2_arg0);
    568568        for (tmp_7 = 1; tmp_7 < tmp_7_max; tmp_7++) {
    569             destructor(o2_v);
     569            destructor(jmi_array_ref_1(tmp_2_arg1, tmp_7));
    570570        }
    571571
     
    11101110        function constructor
    11111111            input R1 r1;
    1112             output EO eo;
     1112            output EO eo_c;
    11131113            external;
    11141114        end constructor;
    11151115        function destructor
    1116             input EO eo;
     1116            input EO eo_d;
    11171117            external;
    11181118        end destructor;
     
    11201120   
    11211121    function f
    1122         input EO eo;
     1122        input EO eo_1_f;
     1123        input EO eo_2_f;
    11231124        output Real y;
    11241125        external;
    11251126    end f;
    11261127   
    1127     parameter EO eo = EO(R1(R2(3)));
    1128     Real y = f(eo);
     1128    parameter EO eo_m = EO(R1(R2(3)));
     1129    Real y = f(eo_m, eo_m);
    11291130   
    11301131    annotation(__JModelica(UnitTesting(tests={
     
    11771178
    11781179
    1179         JMI_DEF(EXO, eo_v)
     1180        JMI_DEF(EXO, eo_1_f_v)
     1181        JMI_DEF(EXO, eo_2_f_v)
    11801182
    11811183---
     
    11841186        JMI_RECORD_STATIC(R1_1_r, tmp_3_arg1)
    11851187        JMI_RECORD_STATIC(R2_0_r, tmp_4)
     1188        JMI_RECORD_STATIC(R1_1_r_ext, tmp_2)
     1189        extern void* constructor(R1_1_r*);
     1190        JMI_RECORD_STATIC(R1_1_r, tmp_6_arg1)
     1191        JMI_RECORD_STATIC(R2_0_r, tmp_7)
    11861192
    11871193---
     
    11891195        tmp_3_arg1->r2 = tmp_4;
    11901196        tmp_2->r2.x = (double)tmp_3_arg1->r2->x;
    1191         eo_v = constructor(tmp_2);
     1197        eo_1_f_v = constructor(tmp_2);
     1198        JMCEVAL_parse(Real, tmp_7->x);
     1199        tmp_6_arg1->r2 = tmp_7;
     1200        tmp_2->r2.x = (double)tmp_6_arg1->r2->x;
     1201        eo_2_f_v = constructor(tmp_2);
    11921202
    11931203---
     
    11951205---
    11961206        JMI_DEF(REA, y_v)
    1197         extern double f(void*);
     1207        extern double f(void*, void*);
    11981208
    11991209---
     
    12011211
    12021212---
    1203             y_v = f(eo_v);
     1213            y_v = f(eo_1_f_v, eo_2_f_v);
    12041214            JMCEVAL_check(\"DONE\");
    12051215            JMCEVAL_print(Real, y_v);
     
    12091219
    12101220---
    1211         destructor(eo_v);
     1221        destructor(eo_1_f_v);
     1222        destructor(eo_2_f_v);
    12121223
    12131224")})));
Note: See TracChangeset for help on using the changeset viewer.