Clang'dan -malign-double
derleyici seçeneği kaldırılmış gibi görünüyor. Örnek kod:Clang GCC'nin -malign-double bayrağına eşdeğer mi?
-m32
) içerisinde GCC derlenmiş
#include <stddef.h>
#include <stdio.h>
typedef struct X { char a; long long b; } X;
int main(void)
{
printf("%zd\n", offsetof(X, b));
return 0;
}
bu -malign-double
etkin ya da sırasıyla eğer bağlı olarak çıkış olarak 8 veya 4'e yapılabilir. Ama Clang bu seçeneğin desteklenmesi görünmüyor:
$ clang test.c -m32 -malign-double
clang: warning: argument unused during compilation: '-malign-double'
$ ./a.out
4
Clang sürümü:
Apple clang version 3.1 (tags/Apple/clang-318.0.58) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix
Ben Clang tarafından desteklenen derleyici bayrakları tam listesi üzerinde herhangi bir resmi belge bulmak gibi olamaz, onlar sadece GCC'nin belgelerinin çoğunu erteliyor gibi görünüyor.
Clang'de -malign-double
için herhangi bir güncel eşdeğer var mı? Yoksa şimdilik farklı bir derleyici kullanmak zorunda kaldım mı? Bu bayrağı kullanan sadece ikili bir üçüncü taraf kitaplığına bağlanan bazı kodları derlemek için buna ihtiyacım var.
Bunun için herhangi bir cevap aldınız mı? – tito
Tamam, birileri bana irc'de söylediğinden hala mümkün değil gibi görün: " bunun için seçenek yok, mümkünse (örneğin ABI tarafından kısıtlanmıyorsa), LLVM, oluşturulan kod ise doğal hizalamayı kullanacaktır. her zaman özellikleri kullanarak hizalamayı zorlayabilir " –
tito