[LLVMbugs] [Bug 126] llvmg++ generates casting code for member initialization

bugzilla-daemon at zion.cs.uiuc.edu bugzilla-daemon at zion.cs.uiuc.edu
Tue Nov 18 13:14:12 PST 2003


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

sabre at nondot.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
           Keywords|                            |regression
         Resolution|                            |FIXED
            Version|1.0                         |trunk



------- Additional Comments From sabre at nondot.org  2003-11-18 15:14 -------
As it turns out, this was a bug in my fix for Bug 54, so it did not appear in
the 1.0 release.

Here's the testcase:
test/Regression/C++Frontend/2003-11-18-MemberInitializationCasting.cpp.tr

Here's the fix:
$ diff -u llvm-expand.c~ llvm-expand.c
--- llvm-expand.c~      2003-11-18 15:11:16.000000000 -0600
+++ llvm-expand.c       2003-11-18 15:11:50.000000000 -0600
@@ -4982,7 +4982,7 @@
 
         ResultBitSize = llvm_type_get_size(Result->Ty)*8;
 
-        if (BitStart != 0 || BitStart+BitSize != ResultBitSize) {
+        if ((BitStart != 0 || BitStart+BitSize != ResultBitSize) && BitSize) {
           /* Make sure that the value we are dealing with is of the right
            * signedness.
            */

This testcase is now reduced to:

int %_Z1fi(int %j.1) {
entry:
        ret int %j.1
}

... as it should be.

-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