[LLVMbugs] [Bug 10473] New: New type system: Invalid module not caught by verifier

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sun Jul 24 22:14:04 PDT 2011


           Summary: New type system: Invalid module not caught by verifier
           Product: libraries
           Version: trunk
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: Archive library
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: viridia at gmail.com
                CC: llvmbugs at cs.uiuc.edu

Created an attachment (id=6927)
 --> (http://llvm.org/bugs/attachment.cgi?id=6927)
An example of an invalid module

I've been converting my frontend over to use the new type system, and I noticed
that llvm-dis was asserting when I attempted to print out the module contents.
It turns out that the module was invalid, but the module verifier should have
caught this when the module was first created, which it did not.

The main problem appears to be that the BitReader complains when you try to
take a GEP of an abstract struct type.

I've included an example module that causes BitReader to fail. Unfortunately,
since I can't print out the module, it's hard to tell exactly what's wrong with
it. I know from looking in the debugger that it's complaining that
tart.reflect.Module is an opaque type. The problem is that in this case it's
*supposed* to be opaque. However, that shouldn't be your concern - I'm mainly
writing this bug because I think it would be good if the module verifier could
catch errors like this.

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