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

             Bug #: 14669
           Summary: CLang's incompatiblity with gcc related to alignment
                    of data fields in structure when passing structure .
           Product: clang
           Version: 3.1
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Frontend
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]
    Classification: Unclassified


Created attachment 9744
  --> http://llvm.org/bugs/attachment.cgi?id=9744
The Test files for the issue.

There seems to be some incompatiblity between Clang and Gcc with regard to
alignment of fields inside structure when a structure data is passed from clang
built code to gcc built code and vice-versa.
The attached test clearly shows the difference in alignment when run.

For the test case, g.c file has been compiled with gcc.
c.c file has been compiled with c.c .
And both files pass have function calls to pass arguments to function in other
file.
The execution steps we undertook are as:
clang m.c -c -o m.o
clang c.c -c -o c.o
gcc g.c -c -o g.o
clang m.o c.o g.o -lm -o a.out
./a.out



One separte example is :
struct test{
unsigned long long int a2;
__attribute__((aligned)) char * b;

};
int main(){
 int a;
 test a1;
  a = __alignof__(a1.a2);
 }

For gcc, the value of a is 4.
For Clang , the value is 8.

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