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: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]
    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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to