Я предполагаю, что на переменную ссылаются относительно указателя, который хранится в контексте потока. Может быть даже зарегистрироваться. Когда создается поток, данные распределяются, и указатель инициализируется, чтобы указывать на него. (Для контекста всегда будет требоваться место.) Когда процесс переключается с одного потока на другой, текущий контекст сохраняется в другом восстановленном контексте, включая косвенный указатель. Если вы не используете правильный тип, исправление во время соединения не будет правильным, и правильная область памяти не будет использоваться. Я не знаю, будет ли исправление просто ошибочным или компоновщик будет знать тип символа, давая эфиру явную ошибку или просто видя глобал как неопределенный. Т.е. я не знаю, видит ли он его как другой символ, тот же символ, но объявленный с конфликтующими типами, или тот же символ, но будут ли смешанные ссылочные методы нарушать код.