[LLVMbugs] [Bug 137] NEW: [llvmg++] Code is generated for empty classes

bugzilla-daemon at zion.cs.uiuc.edu bugzilla-daemon at zion.cs.uiuc.edu
Wed Nov 19 14:01:13 PST 2003


http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=137

           Summary: [llvmg++] Code is generated for empty classes
           Product: tools
           Version: 1.0
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: minor
          Priority: P2
         Component: llvm-g++
        AssignedTo: sabre at nondot.org
        ReportedBy: sabre at nondot.org


This testcase should not generate any stores in the function body:

---
struct X {};
X foo() { return X(); }
---

It currently generates:

---
        %struct.X = type { ubyte }
void %_Z3foov(%struct.X* %agg.result) {
entry:
        %tmp = getelementptr %struct.X* %agg.result, long 0, ubyte 0
        store ubyte 0, ubyte* %tmp
        ret void
}
---

The type is correct (empty classes in C++ have one byte), but the store is not
needed.  Empty classes come up a lot in C++ libraries, like the STL, these
stores are getting in the way.

Unfortunately this will require some changes in the front-end, so this will
probably happen after 1.1.

-Chris



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the llvm-bugs mailing list