// // This file is distributed under the MIT License. See LICENSE.md for details. // // RUN: %revngcliftopt %s --emit-c="tagless model=%S/model.yml" -o /dev/null | FileCheck %s !void = !clift.primitive !int32_t = !clift.primitive !s = !clift.defined<#clift.struct< "/type-definition/2002-StructDefinition" : size(8) { offset(0) : !int32_t, offset(4) : !int32_t }>> !s$p = !clift.ptr<8 to !s> !u = !clift.defined<#clift.union< "/type-definition/2003-UnionDefinition" : { !int32_t, !int32_t }>> !u$p = !clift.ptr<8 to !u> !f = !clift.defined<#clift.func< "/type-definition/1001-CABIFunctionDefinition" : !void()>> clift.module { // CHECK: void fun_0x40001001(void) { clift.func @f() attributes { handle = "/function/0x40001001:Code_x86_64" } { %s = clift.local !s$p "s" %u = clift.local !u$p "u" // CHECK: _var_0->x; clift.expr { %a = clift.access %s : !s$p -> !int32_t clift.yield %a : !int32_t } // CHECK: _var_1->x; clift.expr { %a = clift.access %u : !u$p -> !int32_t clift.yield %a : !int32_t } // CHECK: _var_0->y; clift.expr { %a = clift.access %s : !s$p -> !int32_t clift.yield %a : !int32_t } // CHECK: _var_1->y; clift.expr { %a = clift.access %u : !u$p -> !int32_t clift.yield %a : !int32_t } // CHECK: (*_var_0).x; clift.expr { %v = clift.indirection %s : !s$p %a = clift.access<0> %v : !s -> !int32_t clift.yield %a : !int32_t } // CHECK: (*_var_1).x; clift.expr { %v = clift.indirection %u : !u$p %a = clift.access<0> %v : !u -> !int32_t clift.yield %a : !int32_t } } // CHECK: } }