In clang-3.8, I'm trying to have some data types aligned on 8-bit boundaries, which works for everything except long long.
In my target, I've used: IntAlign = 8; LongAlign = 8; LongLongAlign = 8; FloatAlign = 8; DataLayoutString = "E-p:16:8:8-i1:8:8-i8:8:8-i16:8:8-i32:8:8-i64:8:8-f32:8:8-a:8:8"; If I compile this test.c int i; long l; long long ll; float f; I get the following test.ll: ; ModuleID = 'test.c' target datalayout = "E-p:16:8:8-i1:8:8-i8:8:8-i16:8:8-i32:8:8-i64:8:8-f32:8:8-a:8:8" target triple = "sdcc-stm8" @i = common global i16 0, align 1 @l = common global i32 0, align 1 @ll = common global i64 0, align 8 @f = common global float 0.000000e+00, align 1 !llvm.ident = !{!0} !0 = !{!"clang version 3.8.1 "} So the alignment is wrong for long long only. It seems someone else had such a problem in January (http://lists.llvm.org/pipermail/llvm-dev/2016-January/094000.html), but I don't see a solution there. Philipp _______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users