#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 ! see if we can remove redundant *& in assignment of 'that == buff(0)'
// 3 %string (255) this, that
_imp_string255 THIS;
_imp_string255 THAT;
// 4
// 5 that = "hello world"
/* clang-format off */
_imp_strncpy(/*?*/&THAT, ({__typeof__(_imp_string255) tmp;/*B*/ tmp = _imp_str_literal("hello world"); (void *)&tmp;}), /*max:*/255);
/* clang-format on */
// 6 ! need to implement with memmove - data copy, not a pointer copy
// 7 this = that
/* clang-format off */
_imp_strncpy(/*?*/&THIS, ({__typeof__(_imp_string255) tmp;/*B*/ tmp = THAT; (void *)&tmp;}), /*max:*/255);
/* clang-format on */
// 8
// 9 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}