самостоятельно решил проблему.. оказывается есть существенная разница, с какой стороны от указателя ставить ключевое слово volatile... извиняйте...
Пример такой: Код (Text): volatile int *ptr - volatile относится к объекту (int), на который указывает ptr int * volatile ptr - volatile относится к самому указателю ptr, а не к объекту Rel видимо volatile не с той стороны от * поставил...
Символично - бесплатный продукт с открытым исходным кодом используется для написании обфусцированного говнакода. К вам со всей душой понимаешь, а вы жалеете свою поделку?