complier is error ,following is program #include <reg52.h> #include <stdio.h> unsigned int i; sbit Test=P1^0; main() { i=(int *)Test; } error info is : error c253:INTERNAL ERROR(ASMGEN - TRIPLE=00D[00A5A202])
Setting aside the question what that compiler error message means: your code is at least as wrong as the compiler's reaction to it. This program cannot possibly do anything sensible: what on earth should the re-interpretation of a single *bit* as a pointer be? Patient: Doctor, it hurts if I do this (does it)! Doctor: Well, don't do that then.
There is not such thing as a pointer to a bit on the 8051. Therefore, the C51 compiler cannot support. In fact, no 8051 C compiler can support a pointer to a bit (for the 8051). Jon
Obviously what the program attempted to do was impossible. It would be nice if the compiler simpler gave an informative error message, e.g. "Cannot create pointer to bit variable", rather than generating an obscure internal error.