PRB: #pragma code_seg() Affects Compiler Generated FunctionsLast reviewed: July 25, 1997Article ID: Q122848 |
The information in this article applies to:
SYMPTOMSWhen you use #pragma code_seg() in your C++ code, compiler-generated functions are placed in the last code segment or section that is specified with #pragma code_seg() instead of being placed in the default code segment or section.
RESOLUTIONIf you want compiler generated functions to be placed in the default code segment, include an additional #pragma code_seg() that sets the code segment back to the default:
#pragma code_seg() STATUSThis behavior is by design.
MORE INFORMATIONThe following sample can be used to demonstrate this behavior. Compile the file with /DMY_SECTION, and the compiler-generated code is placed in the MY_SECTION section. To place the compiler-generated functions in the default code section, compile without MY_SECTION defined. You can determine into which section the code is placed by looking at the .COD listing file, generated by using the /Fc compiler option, or the linker mapfile, generated by using the /MAP:filename link option.
Sample Code to Demonstrate Behavior
/* Compile options needed: /Fc /DMY_SECTION */ class base { int i; }; class Simple: virtual base // Classes with virtual base classes are { // non-trivial, and require constructors }; #pragma code_seg("MY_SECTION") void main() { Simple Simple_Class; } #ifndef MY_SECTION // Define MY_SECTION to cause compiler #pragma code_seg() // generated code to be placed in the #endif // MY_SECTION section. |
Additional query words: 8.00 9.00 pragma
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |