[LLVMbugs] [Bug 13555] New: RTTI information unavailable from shared libraries only when method overriding

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Aug 8 15:01:49 PDT 2012


             Bug #: 13555
           Summary: RTTI information unavailable from shared libraries
                    only when method overriding
           Product: clang
           Version: 3.1
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: clemahieu at gmail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 9014
  --> http://llvm.org/bugs/attachment.cgi?id=9014
Reduced XCode project files.

Summary: When a program dynamically loads a shared library and receives an
object instantiated in the shared library, if the class of the object overrides
a method the RTTI information not retrievable.  If the class of the object does
not override a method the RTTI information is available as expected.

These test cases were tested with XCode 4.3, 4.4, and 4.4.1.

Steps to Reproduce:
Attached is an XCode project.

Establishing good behavior:
Open the project and build scheme test2, the shared library.  Then build scheme
testproj, the application.  Run the application and note that it will complete
successfully, result1 and result2 are both true.

Demonstrating incorrect behavior:
Edit test3.h and uncomment "void foo () override;" Edit test3.cpp and uncomment
method c2::foo Build scheme test2, build scheme testproj.  Run testproj. 
Notice the incorrect output, result1 is false while result2 remains true.  The
RTTI was lost when overriding a method.

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list