#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %integer %name i, t1
int *I;
int *T1;
// 3 %string (10) %name s, t2
_imp_string10 *S;
_imp_string10 *T2;
// 4 ! De-Morgan failure:
// 5 %unless t1 == i %and t2 == s %then printstring("BUG1 FOUND")
/* clang-format off */
if (_imp_ADDR((void *)(T1)) != _imp_ADDR((void *)(I))) goto L_0001;
/* clang-format on */
/* clang-format off */
if (_imp_ADDR((void *)(T2)) == _imp_ADDR((void *)(S))) goto L_0002;
/* clang-format on */
L_0001:;
_imp_PRINTSTRING(_imp_str_literal("BUG1 FOUND"));
L_0002:;
// 6 %if t1 ## i %and t2 ## s %then printstring("BUG2 FOUND")
/* clang-format off */
if (_imp_ADDR((void *)(T1)) == _imp_ADDR((void *)(I))) goto L_0003;
/* clang-format on */
/* clang-format off */
if (_imp_ADDR((void *)(T2)) == _imp_ADDR((void *)(S))) goto L_0003;
/* clang-format on */
_imp_PRINTSTRING(_imp_str_literal("BUG2 FOUND"));
L_0003:;
// 7 %end %of %program
_imp_stop(0);
return 0;
end_0:;
}