![]() |
|
#1
|
|||
|
|||
|
Omitting unused global variables
Recently I came across somewhat strange (?) behaviour of Microsoft's link.exe (10.00.30319.01).
Code:
#include <stdio.h>
#define SECTION_NAME ".4711"
#pragma code_seg( push, r1, SECTION_NAME )
#pragma comment( linker, "/SECTION:"SECTION_NAME",RWE" )
__declspec(allocate(SECTION_NAME)) const char pString[] = "Blaaaaahhhhhhhh";
void TestFunc2()
{
printf( __FUNCTION__"\n" );
}
void TestFunc()
{
#if 1
printf( __FUNCTION__"\n" );
#endif
#if 1
printf( __FUNCTION__": %s\n", pString );
#endif
TestFunc2();
}
#pragma code_seg( pop, r1 )
void main()
{
#if 0
TestFunc();
#endif
}
The linker does indeed omit TestFunc and TestFunc2, but it puts pString into the image unless I disable the reference in TestFunc. So my question is if that's intended, correct behaviour or if this is some kind of bug in link.exe and if someone possibly knows a workaround. Thanks in advance. BTW The code was compiled/linked with /O2 /Ob0 /Oy and /OPT:REF. |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Armadillo Environment Variables Finder 1.2 | rukov | Community Tools | 3 | 12-16-2015 01:59 |
| 2004 Global Piracy Study | Shub-Nigurrath | General Discussion | 2 | 07-13-2004 20:51 |
| Tool to zero unused space??? | yaa | General Discussion | 1 | 10-09-2003 20:31 |