NAME=mach0 swift demangle methods
FILE=bins/mach0/swift/klass.orig
CMDS=<<EOF
icc
EOF
EXPECT=<<EOF
@interface SomeClass
{
}
@end
@interface SuperKlass
{
}
@end
@interface klass.SomeClass : klass.SuperKlass
{
   klass.SomeClass::(ivar)meh
   klass.SomeClass::(ivar)cow
}
@end
@interface klass.SuperKlass : _TtCs12_SwiftObject
{
   klass.SuperKlass::(ivar)superfield
}
@end
@interface swift
{
}
@end
EOF
RUN

NAME=swift-x86-64 calling convention json
ARGS=-e bin.demangle=false
FILE=bins/mach0/swift5.1-throwError
CMDS=<<EOF
s sym.__s10throwError7ThrowerC0a2MyB0yyKF
af
afc swift
afva
afcrj
afvj
EOF
EXPECT=<<EOF
{"ret":"rax","args":["rdi","rsi","rdx","rcx","r8","r9","xmm0","xmm1","xmm2","xmm3","xmm4"],"self":"r13","error":"r12"}
{"reg":[{"name":"self","kind":"reg","type":"int64_t","ref":"r13"},{"name":"error","kind":"reg","type":"int64_t","ref":"r12"}],"sp":[],"bp":[{"name":"var_10h","kind":"var","type":"int64_t","ref":{"base":"rbp","offset":-16}},{"name":"var_18h","kind":"var","type":"int64_t","ref":{"base":"rbp","offset":-24}},{"name":"var_20h","kind":"var","type":"int64_t","ref":{"base":"rbp","offset":-32}},{"name":"var_28h","kind":"var","type":"int64_t","ref":{"base":"rbp","offset":-40}}]}
EOF
RUN
