[Bug c++/18917] New: Catch statements in #include file not pulled in by preprocessor

garyepellecchia at yahoo dot com gcc-bugzilla@gcc.gnu.org
Fri Dec 10 02:41:00 GMT 2004


I tried to factor some commonly used catch blocks into an include file to be 
referenced from 50 or so locations in my system, but the compiler prints an 
error message which indicates that it is not seeing what's in the #include file.

[gpvu] martha 62: /usr/local/bin/g++ -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-
ld=/usr/ccs/bin/ld --disable-nls
Thread model: posix
gcc version 3.2

/usr/local/bin/g++ -fPIC -shared -g -MMD -c -Wno-deprecated -Wunknown-pragmas -
Wpadded -DBUILD3  -DCGAI30  -DSunOS -Dreally_cplusplus  -I/nfs_server1/MK2 -
I/nfs_server1/MK2/COMM -I/nfs_server1/MK2/IS/cc/src -
I/nfs_server1/MK2/COMM/msg -I/nfs_server1/MK2/COMM/basic -
I/nfs_server1/MK2/COMM/shell/src -I/nfs_server1/MK2/COMM/frmwks/Log_Manager -
I/nfs_server1/MK2/COMM/frmwks/Special_DX_Manager -I/nfs_server1/MK2/IS/mts/src -
I/nfs_server1/MK2/IS/mts/src/incl -I/nfs_server1/MK2/COMM/frmwks/System -
I/nfs_server0/tornado/wind2/target/proj/SSDS                            -
o ./obj_sun/IBuilder_t.o -c /nfs_server1/MK2/COMM/frmwks/System/IBuilder_t.cpp
<internal>:0: warning: padding struct size to alignment boundary
/nfs_server1/MK2/COMM/frmwks/System/IBuilder_t.cpp: In function `void junk()':
/nfs_server1/MK2/COMM/frmwks/System/IBuilder_t.cpp:0: `...' handler must be the 
   last handler for its try block

The .ii file (and the source files so you can see what is missing)

[gpvu] martha 102: more IBuilder_t.ii
# 1 "/nfs_server1/MK2/COMM/frmwks/System/IBuilder_t.cpp"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "/nfs_server1/MK2/COMM/frmwks/System/IBuilder_t.cpp"
# 14 "/nfs_server1/MK2/COMM/frmwks/System/IBuilder_t.cpp"
void junk()
{
    try {
        int j = 0;
    }

}
[gpvu] martha 103: more /nfs_server1/MK2/COMM/frmwks/System/IBuilder_t.cpp
//## begin module%1.3%.codegen_version preserve=yes
//   Read the documentation to learn more about C++ code generator
//   versioning.
//## end module%1.3%.codegen_version

//## Module: IBuilder_t%38D8263703A8; Pseudo Package body
//## Source file: V:\MK2\COMM\frmwks\System\IBuilder_t.cpp

//## begin module%38D8263703A8.includes preserve=yes
//## end module%38D8263703A8.includes

// IBuilder_t
//#include <COMM/frmwks/System/IBuilder_t.h>
void junk()
{
    try {
        int j = 0;
    }
#include<COMM/frmwks/System/SafetyNetCatchAndThrow.inl>
}
//## begin module%38D8263703A8.additionalDeclarations preserve=yes
//## end module%38D8263703A8.additionalDeclarations


// Parameterized Class IBuilder_t 





// Additional Declarations
  //## begin IBuilder_t%38D8263703A8.declarations preserve=yes
  //## end IBuilder_t%38D8263703A8.declarations

//## begin module%38D8263703A8.epilog preserve=yes
//## end module%38D8263703A8.epilog
[gpvu] martha 104: 
more /nfs_server1/MK2/COMM/frmwks/System/SafetyNetCatchAndThrow.inl
catch (...) {
    int j = 5;
}

-- 
           Summary: Catch statements in #include file not pulled in by
                    preprocessor
           Product: gcc
           Version: 3.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: garyepellecchia at yahoo dot com
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18917



More information about the Gcc-bugs mailing list