Microsoft KB Archive/122848

= PRB: #pragma code_seg Affects Compiler-Generated Functions =

Article ID: 122848

Article Last Modified on 7/5/2005

-

APPLIES TO


 * Microsoft Visual C++ 1.0 Professional Edition
 * Microsoft Visual C++ 2.0 Professional Edition
 * Microsoft Visual C++ 2.1
 * Microsoft Visual C++ 4.0 Standard Edition
 * Microsoft Visual C++ 5.0 Enterprise Edition
 * Microsoft Visual C++ 5.0 Professional Edition

-



This article was previously published under Q122848



SYMPTOMS
When 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.



RESOLUTION
If 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



STATUS
This behavior is by design.



MORE INFORMATION
The 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 /FAsc 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

Keywords: kbprb kbcpponly kbcode kbcompiler KB122848

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.