Issue 35682 - subtle incompatibilities with (non) comprehensive types on linux x86
Summary: subtle incompatibilities with (non) comprehensive types on linux x86
Status: CLOSED DUPLICATE of issue 35064
Alias: None
Product: udk
Classification: Code
Component: code (show other issues)
Version: 680m56
Hardware: All Linux, all
: P3 Trivial (vote)
Target Milestone: OOo 2.0
Assignee: Daniel Boelzle [:dbo]
QA Contact: issues@udk
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-10-18 01:06 UTC by joergbudi
Modified: 2004-10-18 18:29 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
Patch to reproduce the crash (888 bytes, patch)
2004-10-18 01:10 UTC, joergbudi
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description joergbudi 2004-10-18 01:06:45 UTC
Hi Daniel,

I've investigated some subtle crashes in pyuno tests within regcomp. These
crashes have appeared on 680 codeline, but I did not do any changes there. So I
started to investigate and was able to strip down the problem, so that it also
appears in the simple stoc servicemanager test (see attachement).

I think, this problem might be related to
http://www.openoffice.org/issues/show_bug.cgi?id=31057

, but I am not sure.

When you apply the patch and let run the stoc servicemanager test (testsmgr),
everything works fine, you just get the additional output. However, when you try
to register this component with regcomp (regcomp -register -r bla.rdb -c
libat.so), it crashes, because the type is crippled (in fact, the type pointer
seems to point to some stack memory area, which seems not be the thing. )

When you compile the same code with debug (or with lower optimization level),
the component can be registered with regcomp.

Having a look with nm , 

$ nm -D ../lib/libat.so | grep RuntimeException | c++filt
00007970 V getCppuType(com::sun::star::uno::RuntimeException const*)::the_type 
                                                                               
                   

$ nm -D ../../../solver/680/unxlngi4.pro/bin/regcomp | grep RuntimeException |
c++filt
0805b4a6 W getCppuType(com::sun::star::uno::RuntimeException const*)
0806ba90 B guard variable for getCppuType(com::sun::star::uno::RuntimeException
const*)::the_staticType
08068e34 V typeinfo for com::sun::star::uno::RuntimeException
08067dc0 V typeinfo name for com::sun::star::uno::RuntimeException
0806bac0 B getCppuType(com::sun::star::uno::RuntimeException const*)::the_staticType
08068e6c V getCppuType(com::sun::star::uno::RuntimeException const*)::the_type 
                                                                               
                   

it seems to me, that the source of the problem is a name clash with the static
variable ::the_type in comprehensive and not comprehensive mode. Renaming
the_type to the_type2 in the comprehensive headers made the problem disappear,
so from my understanding, this should be changed in the code generator.

Bye,

Joerg
Comment 1 joergbudi 2004-10-18 01:10:16 UTC
Created attachment 18473 [details]
Patch to reproduce the crash
Comment 2 joergbudi 2004-10-18 01:13:41 UTC
forgot to tell:
Platform: linux x86
Compiler: gcc-3.2.3
Comment 3 Daniel Boelzle [:dbo] 2004-10-18 09:15:25 UTC
Hey Joerg, I have already fixed this in issue 35064, will be in somehow within
the next weeks (cws presentationengine01).


*** This issue has been marked as a duplicate of 35064 ***
Comment 4 joergbudi 2004-10-18 18:29:34 UTC
ok (filing duplicates seems to be my current favourite task ...).

Thx and bye,

Joerg