Post by olcott*Fully operational code is here*
https://github.com/plolcott/x86utm/blob/master/Halt7.c
This program does not compile, so it cannot be executed.
Halting problem solved.
Shit happens. A lot of things. I cannot get it to compile at all. MSVC,
GCC, whatever...
main.c: In function ‘Decide_Halting0’:
main.c:239:32: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
239 | PushBack(*execution_trace, (u32)*decoded,
sizeof(Decoded_Line_Of_Code));
| ^
main.c:240:36: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
240 | Aborted =
Needs_To_Be_Aborted0((Decoded_Line_Of_Code*)*execution_trace,
Address_of_H, P);
| ^
main.c: In function ‘Decide_Halting’:
main.c:364:32: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
364 | PushBack(*execution_trace, (u32)*decoded,
sizeof(Decoded_Line_Of_Code));
| ^
main.c:365:35: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
365 | Aborted =
Needs_To_Be_Aborted((Decoded_Line_Of_Code*)*execution_trace,
| ^
main.c: In function ‘Decide_Halting_HH’:
main.c:495:35: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
495 | PushBack(**execution_trace, (u32)*decoded,
sizeof(Decoded_Line_Of_Code));
| ^
main.c:504:22: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
504 | u32* address = (u32*)**execution_trace;
| ^
main.c:513:32: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
513 |
Needs_To_Be_Aborted_HH((Decoded_Line_Of_Code*)**execution_trace); //
2024-08-27
| ^
main.c: In function ‘Init_Halts_HH’:
main.c:538:40: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
538 | Output((char*)"New slave_stack at:", (u32)*slave_stack);
| ^
main.c:543:25: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
543 | **execution_trace =
(u32)Allocate(sizeof(Decoded_Line_Of_Code) * 10000);
| ^
main.c: In function ‘HH1’:
main.c:615:77: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
615 | u32 Root = Init_Halts_HH(&Aborted, &execution_trace,
&decoded, &code_end, (u32)P,
|
^
main.c:619:20: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
619 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c:619:28: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
619 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c: In function ‘H’:
main.c:699:77: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
699 | u32 Root = Init_Halts_HH(&Aborted, &execution_trace,
&decoded, &code_end, (u32)P,
|
^
main.c:703:20: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
703 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c:703:28: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
703 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c: In function ‘HHH1’:
main.c:777:77: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
777 | u32 Root = Init_Halts_HH(&Aborted, &execution_trace,
&decoded, &code_end, (u32)P,
|
^
main.c:782:21: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
782 | Init_slave_state0((u32)P, End_Of_Code, slave_state,
slave_stack); // 2024-06-16
| ^
main.c: In function ‘HHH’:
main.c:857:77: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
857 | u32 Root = Init_Halts_HH(&Aborted, &execution_trace,
&decoded, &code_end, (u32)P,
|
^
main.c:862:21: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
862 | Init_slave_state0((u32)P, End_Of_Code, slave_state,
slave_stack); // 2024-06-16
| ^
main.c: In function ‘Address_of_Sipser_H’:
main.c:942:77: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
942 | u32 Root = Init_Halts_HH(&Aborted, &execution_trace,
&decoded, &code_end, (u32)P,
|
^
main.c:947:21: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
947 | Init_slave_state0((u32)P, End_Of_Code, slave_state,
slave_stack); // 2024-06-16
| ^
main.c: In function ‘H1’:
main.c:970:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
970 | u32 End_Of_Code = get_code_end((u32)H1);
| ^
main.c:971:35: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
971 | u32 Address_of_H1 = (u32)H1; // 2022-08-15
| ^
main.c:972:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
972 | u32 code_end = get_code_end((u32)P);
| ^
main.c:978:26: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
978 | u32 execution_trace =
(u32)Allocate(sizeof(Decoded_Line_Of_Code) * 10000);
| ^
main.c:980:20: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
980 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c:980:28: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
980 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c:984:65: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
984 | &slave_state, &slave_stack, Address_of_H1,
(u32)P, (u32)I))
| ^
main.c:984:73: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
984 | &slave_state, &slave_stack, Address_of_H1,
(u32)P, (u32)I))
|
^
main.c: In function ‘H_prior’:
main.c:1003:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1003 | u32 End_Of_Code = get_code_end((u32)H_prior);
| ^
main.c:1004:35: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1004 | u32 Address_of_H = (u32)H_prior;
| ^
main.c:1005:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1005 | u32 code_end = get_code_end((u32)P);
| ^
main.c:1011:26: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1011 | u32 execution_trace =
(u32)Allocate(sizeof(Decoded_Line_Of_Code) * 10000);
| ^
main.c:1014:20: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1014 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c:1014:28: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1014 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c:1018:64: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1018 | &slave_state, &slave_stack, Address_of_H,
(u32)P, (u32)I))
| ^
main.c:1018:72: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1018 | &slave_state, &slave_stack, Address_of_H,
(u32)P, (u32)I))
|
^
main.c: In function ‘Sipser_H’:
main.c:1029:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1029 | u32 End_Of_Code = get_code_end((u32)H_prior);
| ^
main.c:1030:35: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1030 | u32 Address_of_Sipser_H = (u32)Sipser_H;
| ^
main.c:1031:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1031 | u32 code_end = get_code_end((u32)P);
| ^
main.c:1037:26: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1037 | u32 execution_trace =
(u32)Allocate(sizeof(Decoded_Line_Of_Code) * 10000);
| ^
main.c:1040:20: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1040 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c:1040:28: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1040 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c:1044:71: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1044 | &slave_state, &slave_stack,
Address_of_Sipser_H, (u32)P, (u32)I))
|
^
main.c:1044:79: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1044 | &slave_state, &slave_stack,
Address_of_Sipser_H, (u32)P, (u32)I))
|
^
main.c: In function ‘Kozen_K’:
main.c:1055:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1055 | u32 End_Of_Code = get_code_end((u32)H_prior);
| ^
main.c:1056:35: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1056 | u32 Address_of_Kozen_K = (u32)Kozen_K;
| ^
main.c:1057:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1057 | u32 code_end = get_code_end((u32)P);
| ^
main.c:1063:26: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1063 | u32 execution_trace =
(u32)Allocate(sizeof(Decoded_Line_Of_Code) * 10000);
| ^
main.c:1066:20: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1066 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c:1066:28: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1066 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state,
slave_stack);
| ^
main.c:1070:70: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1070 | &slave_state, &slave_stack,
Address_of_Kozen_K, (u32)P, (u32)I))
|
^
main.c:1070:78: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1070 | &slave_state, &slave_stack,
Address_of_Kozen_K, (u32)P, (u32)I))
|
^
main.c: In function ‘H0’:
main.c:1081:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1081 | u32 End_Of_Code = get_code_end((u32)H0); ;
| ^
main.c:1082:36: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1082 | u32 Address_of_H0 = (u32)H0;
| ^
main.c:1083:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1083 | u32 code_end = get_code_end((u32)P);
| ^
main.c:1089:26: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1089 | u32 execution_trace =
(u32)Allocate(sizeof(Decoded_Line_Of_Code) * 1000);
| ^
main.c:1090:21: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1090 | Init_slave_state0((u32)P, End_Of_Code, slave_state, slave_stack);
| ^
main.c:1094:65: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1094 | &slave_state, &slave_stack, Address_of_H0,
(u32)P))
| ^
main.c: In function ‘T’:
main.c:1105:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1105 | u32 End_Of_Code = get_code_end((u32)T); ;
| ^
main.c:1106:35: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1106 | u32 Address_of_T = (u32)T;
| ^
main.c:1107:48: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1107 | u32 code_end = get_code_end((u32)P);
| ^
main.c:1113:26: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1113 | u32 execution_trace =
(u32)Allocate(sizeof(Decoded_Line_Of_Code) * 1000);
| ^
main.c:1114:21: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1114 | Init_slave_state0((u32)P, End_Of_Code, slave_state, slave_stack);
| ^
main.c:1118:64: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
1118 | &slave_state, &slave_stack, Address_of_T,
(u32)P))
| ^
main.c: In function ‘D0’:
main.c:1228:24: warning: passing argument 1 of ‘H0’ from incompatible
pointer type [-Wincompatible-pointer-types]
1228 | int Halt_Status = H0(D0);
| ^~
| |
| int (*)()
main.c:1079:12: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
of type ‘int (*)()’
1079 | u32 H0(ptr P)
| ~~~~^
main.c: In function ‘B’:
main.c:1249:11: warning: passing argument 1 of ‘H_prior’ from
incompatible pointer type [-Wincompatible-pointer-types]
1249 | H_prior(x, x);
| ^
| |
| int (*)()
main.c:1001:17: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
of type ‘int (*)()’
1001 | u32 H_prior(ptr P, void* I) // 2024-09-15 was H
| ~~~~^
main.c: In function ‘Infinite_Recursion2’:
main.c:1260:34: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
1260 | H_prior(Infinite_Recursion2, (ptr)N);
| ^
main.c: In function ‘D1’:
main.c:1300:29: warning: passing argument 1 of ‘H_prior’ from
incompatible pointer type [-Wincompatible-pointer-types]
1300 | int Halt_Status = H_prior(x, x);
| ^
| |
| int (*)()
main.c:1001:17: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
of type ‘int (*)()’
1001 | u32 H_prior(ptr P, void* I) // 2024-09-15 was H
| ~~~~^
main.c: In function ‘PP’:
main.c:1309:23: warning: passing argument 1 of ‘H’ from incompatible
pointer type [-Wincompatible-pointer-types]
1309 | int Halt_Status = H(x, x); // 2024-09-15 was HH
| ^
| |
| ptr2
main.c:643:11: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
of type ‘ptr2’
643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
| ~~~~^
main.c:1309:26: warning: passing argument 2 of ‘H’ from incompatible
pointer type [-Wincompatible-pointer-types]
1309 | int Halt_Status = H(x, x); // 2024-09-15 was HH
| ^
| |
| ptr2
main.c:643:18: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
of type ‘ptr2’
643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
| ~~~~^
main.c: In function ‘DD’:
main.c:1347:23: warning: passing argument 1 of ‘H’ from incompatible
pointer type [-Wincompatible-pointer-types]
1347 | int Halt_Status = H(x, x); // 2024-09-15 was HH
| ^
| |
| int (*)()
main.c:643:11: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
of type ‘int (*)()’
643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
| ~~~~^
main.c:1347:26: warning: passing argument 2 of ‘H’ from incompatible
pointer type [-Wincompatible-pointer-types]
1347 | int Halt_Status = H(x, x); // 2024-09-15 was HH
| ^
| |
| int (*)()
main.c:643:18: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
of type ‘int (*)()’
643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
| ~~~~^
main.c: In function ‘D’:
main.c:1367:9: warning: passing argument 1 of ‘H’ from incompatible
pointer type [-Wincompatible-pointer-types]
1367 | if (H(M, M) )
| ^
| |
| int (*)()
main.c:643:11: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
of type ‘int (*)()’
643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
| ~~~~^
main.c:1367:12: warning: passing argument 2 of ‘H’ from incompatible
pointer type [-Wincompatible-pointer-types]
1367 | if (H(M, M) )
| ^
| |
| int (*)()
main.c:643:18: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
of type ‘int (*)()’
643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
| ~~~~^
main.c: Assembler messages:
main.c:601: Error: too many memory references for `lea'
main.c:602: Error: too many memory references for `mov'
main.c:603: Error: too many memory references for `lea'
main.c:604: Error: too many memory references for `mov'
main.c:605: Error: too many memory references for `mov'
main.c:606: Error: too many memory references for `mov'
main.c:685: Error: too many memory references for `lea'
main.c:686: Error: too many memory references for `mov'
main.c:687: Error: too many memory references for `lea'
main.c:688: Error: too many memory references for `mov'
main.c:689: Error: too many memory references for `mov'
main.c:690: Error: too many memory references for `mov'
main.c:763: Error: too many memory references for `lea'
main.c:764: Error: too many memory references for `mov'
main.c:765: Error: too many memory references for `lea'
main.c:766: Error: too many memory references for `mov'
main.c:767: Error: too many memory references for `mov'
main.c:768: Error: too many memory references for `mov'
main.c:843: Error: too many memory references for `lea'
main.c:844: Error: too many memory references for `mov'
main.c:845: Error: too many memory references for `lea'
main.c:846: Error: too many memory references for `mov'
main.c:847: Error: too many memory references for `mov'
main.c:848: Error: too many memory references for `mov'
main.c:928: Error: too many memory references for `lea'
main.c:929: Error: too many memory references for `mov'
main.c:930: Error: too many memory references for `lea'
main.c:931: Error: too many memory references for `mov'
main.c:932: Error: too many memory references for `mov'
main.c:933: Error: too many memory references for `mov'