[LLVMbugs] [Bug 3577] New: clang does not detect some compile time constants.

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Fri Feb 13 13:34:53 PST 2009


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

           Summary: clang does not detect some compile time constants.
           Product: clang
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Semantic Analyzer
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: bolzoni at cs.unipr.it
                CC: llvmbugs at cs.uiuc.edu, bagnara at cs.unipr.it


The following pieces of code are from the gcc test suite.
While gcc compiles without problems, clang does not detect that
the values assigned to the static variables are compile time known.

The last two pieces are really bizarre, but the other two use idioms
actually pretty common in low level C code.


/*920928-1.c*/
struct{int c;}v;
static long i=((char*)&(v.c)-(char*)&v);
/*end*/


/*930326-1.c*/
struct
{
  char a, b, f[3];
} s;
long i = s.f-&s.b;
/*end*/


/*labels-3.c*/
int foo (int a)
{
  static const short ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
  void *p = &&l1 + ar[a];
  goto *p;
 l1:
  return 1;
 l2:
  return 2;
}
/*end*/


/*20001116-1.c */
int x[60];
char *y = ((char*)&(x[2*8 + 2]) - 8);
int z = (&"Foobar"[1] - &"Foobar"[0]);
/*end*/


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