We cannot decide anything “interesting” about any Turing-complete program. “Interesting” is defined as any property that is not either true for every program, or false for every program. “Decide” means write a program that returns either true or false on all programs. The halting program is an instance of Rice’s Theorem.
Formally
All program analysis problems that are non-trivial are undecidable. There is no program analysis that achieves all of the following for all input problems:
- Is fully automatic (no user input/interaction other than the program)
- Always terminates (the analysis itself, not program being analysed)
- On termination: always says “yes” when the answer should be “yes”
- On termination: always says “no” when the answer should be “no”