Delphi编译器是否执行优化?

sev*_*ven 1 delphi compiler-construction optimization compiler-optimization

我使用的是Delphi 7 IDE.Delphi编译器是否优化代码,就像C++编译器在以下链接中所做的那样?

http://msdn.microsoft.com/en-us/library/aa366877(VS.85).aspx

WCHAR szPassword[MAX_PATH];
// Retrieve the password
if (GetPasswordFromUser(szPassword, MAX_PATH))    
   UsePassword(szPassword);
// Clear the password from memory
SecureZeroMemory(szPassword, sizeof(szPassword));
Run Code Online (Sandbox Code Playgroud)

如果ZeroMemory在此示例中调用而不是SecureZeroMemory,则编译器可以优化调用,因为szPassword缓冲区在超出范围之前不会从中读取.密码将保留在应用程序堆栈中,可以在崩溃转储中捕获或由恶意应用程序探测.

Rob*_*edy 12

是的,当然Delphi会执行优化.但是,它不执行该SecureZeroMemory函数旨在规避的优化.在Delphi中不需要使用该功能; 只是使用普通的ZeroMemory,甚至是FillChar.它们不是宏,并且它们不执行任何Delphi认为是可以优化的未使用赋值语句.