[LLVMbugs] [Bug 14881] New: Complex unsigned long long constant truncated from 64 bits to 32 bits

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Jan 9 15:24:08 PST 2013


http://llvm.org/bugs/show_bug.cgi?id=14881

             Bug #: 14881
           Summary: Complex unsigned long long constant truncated from 64
                    bits to 32 bits
           Product: clang
           Version: trunk
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: LLVM Codegen
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: wschmidt at linux.vnet.ibm.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


Created attachment 9845
  --> http://llvm.org/bugs/attachment.cgi?id=9845
LLVM IR generated with Clang r171978

The following code snippet was culled from one of the GCC compatibility tests. 
As shown in the attached IR, the front end loses precision on the unsigned long
long constants.

typedef _Complex unsigned long long int Tal16cullong;
struct S2008 { Tal16cullong a; };
extern struct S2008 s2008;

int foo(void) {
  if (s2008.a != (__typeof__ (s2008.a)) ((4813389483906728238ULL +
3221506372476820043ULL * __extension__ 1i)))
    return 1;
  return 0;
}

-- 
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