Если ваш компилятор является недавним GCC (или если вы можете переключиться на GCC 4.6, возможно, в качестве кросс-компилятора), вы можете разработать плагин GCC или расширение MELT , чтобы выяснить это.
Конечно, если вы, например, делаете трюки с указателями на функции (например, арифметика непереносимых указателей на указатели на функции), исходный вопрос неразрешим.
На самом деле, если вы используете указатели на функции, часто единственно разумно сказать, что они могут достигать только функций с одинаковой сигнатурой.
И, возможно, проект достаточно важен для настройкикомпилятор для лучшего (автоматического или полуавтоматического) компромисса между fast_mem
и slow_mem
имеет смысл.Обычно это отличный случай для плагинов GCC или расширений MELT (но это занимает несколько рабочих дней или недель, а не часов, потому что вам нужно понимать внутренние представления GCC для настройки GCC), и вы, вероятно, единственный, кто могсделайте это (потому что ваш вопрос очень свойственен некоторым странным системам).