информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медSpanning Tree Protocol: недокументированное применениеАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Ну все, спасайте меня :-) MS VC++ 7.0 05.02.02 09:58  Число просмотров: 757
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Есть такой зверь MS Visual Studio .NET beta2, а в нем VC++ 7.0...
Компилятор там точно нормальный, потому что немного старше своего "брата" из WinXP DDK.

Суть борьбы вот в чем:
Нужно заставить компилятор не "свертывать" чтение по указателю, результат которого не используется. Например имеем код:
void MyFunc(volatile unsigned *MyPtr)
{
  unsigned dummy;
  dummy = *MyPtr;
  dummy = *MyPtr;
}

---
При полной оптимизации (/Oxa) компилятор убивает обращения к *MyPtr, а их нужно оставить. Потому что MyPtr указывает на Memory Mapped I/O Space и чтение *MyPtr аналогично __asm in al, dx

До включения полной потимизации было достаточно volatile-спецификатора, что сейчас делать не знаю. Конечно можно тупо написать функцию чтения, но в данном случае нужно максимально быстро, и затраты на вызов функции существенны.

Было-бы интересно узнать, как указать компилятору что функция (или выражение) имеет некий side-effect и не допускает удаления, как например _inp(). Например GCC имеет для этого все средства...
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach