VAST version
master
LLVM version
18.1.8
Operating system
Linux (Solus)
Description
({
int x = 5;
typeof(x) y = x;
y;
})
generates
hl.typeof.expr "(x)" {
%3 = hl.expr : !hl.lvalue<!hl.int> {
%4 = unsup.stmt "DeclRefExpr" : !hl.int
hl.value.yield %4 : !hl.int
}
hl.type.yield %3 : !hl.lvalue<!hl.int>
} : !hl.int
%2 = hl.stmt.expr : !hl.typeof.expr<"(x)"> {
%3 = hl.var @x : !hl.lvalue<!hl.int> = {
%7 = hl.const #core.integer<0> : !hl.int
hl.value.yield %7 : !hl.int
}
%4 = hl.var @y : !hl.lvalue<!hl.typeof.expr<"(x)">> = {
%7 = hl.ref %3 : (!hl.lvalue<!hl.int>) -> !hl.lvalue<!hl.int>
%8 = hl.implicit_cast %7 LValueToRValue : !hl.lvalue<!hl.int> -> !hl.int
hl.value.yield %8 : !hl.int
}
%5 = hl.ref %4 : (!hl.lvalue<!hl.typeof.expr<"(x)">>) -> !hl.lvalue<!hl.typeof.expr<"(x)">>
%6 = hl.implicit_cast %5 LValueToRValue : !hl.lvalue<!hl.typeof.expr<"(x)">> -> !hl.typeof.expr<"(x)">
hl.value.yield %6 : !hl.typeof.expr<"(x)">
}
The issue is unsupported DeclRefExpr in the typeof.expr region, that refers to x that is in the scope of the stmt.expr.
This is caused by visiting the return type of the stmt.expr
Steps to Reproduce
Run vast-front to hl
VAST version
master
LLVM version
18.1.8
Operating system
Linux (Solus)
Description
generates
The issue is unsupported
DeclRefExprin thetypeof.exprregion, that refers toxthat is in the scope of thestmt.expr.This is caused by visiting the return type of the
stmt.exprSteps to Reproduce
Run vast-front to hl