rusi/test/alignof.c

51 lines
2.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#включить "тест.з"
#включить "stdvv.c"
цел _Выравнивание(512) г1;
цел _Выравнивание(512) г2;
символ г3;
цел г4;
длин г5;
символ г6;
цел главн() {
ПРОВЕРИТЬ(1, _Выравнивание_типа(символ));
ПРОВЕРИТЬ(2, _Выравнивание_типа(short));
ПРОВЕРИТЬ(4, _Выравнивание_типа(цел));
ПРОВЕРИТЬ(8, _Выравнивание_типа(длин));
ПРОВЕРИТЬ(8, _Выравнивание_типа(длин длин));
ПРОВЕРИТЬ(1, _Выравнивание_типа(символ[3]));
ПРОВЕРИТЬ(4, _Выравнивание_типа(цел[3]));
ПРОВЕРИТЬ(1, _Выравнивание_типа(структ {символ а; символ б;}[2]));
ПРОВЕРИТЬ(8, _Выравнивание_типа(структ {символ а; длин б;}[2]));
ПРОВЕРИТЬ(1, ({ _Выравнивание(символ) символ х, у; &у-&х; }));
ПРОВЕРИТЬ(8, ({ _Выравнивание(длин) символ х, у; &у-&х; }));
ПРОВЕРИТЬ(32, ({ _Выравнивание(32) символ х, у; &у-&х; }));
ПРОВЕРИТЬ(32, ({ _Выравнивание(32) цел *х, *у; ((символ *)&у)-((символ *)&х); }));
ПРОВЕРИТЬ(16, ({ структ { _Выравнивание(16) символ х, у; } а; &а.у-&а.х; }));
ПРОВЕРИТЬ(8, ({ структ T { _Выравнивание(8) символ а; }; _Выравнивание_типа(структ T); }));
ПРОВЕРИТЬ(0, (длин)(символ *)&г1 % 512);
ПРОВЕРИТЬ(0, (длин)(символ *)&г2 % 512);
ПРОВЕРИТЬ(0, (длин)(символ *)&г4 % 4);
ПРОВЕРИТЬ(0, (длин)(символ *)&г5 % 8);
ПРОВЕРИТЬ(1, ({ символ х; _Выравнивание_типа(х); }));
ПРОВЕРИТЬ(4, ({ цел х; _Выравнивание_типа(х); }));
ПРОВЕРИТЬ(1, ({ символ х; _Выравнивание_типа х; }));
ПРОВЕРИТЬ(4, ({ цел х; _Выравнивание_типа х; }));
ПРОВЕРИТЬ(1, _Выравнивание_типа(символ) << 31 >> 31);
ПРОВЕРИТЬ(1, _Выравнивание_типа(символ) << 63 >> 63);
ПРОВЕРИТЬ(1, ({ символ х; _Выравнивание_типа(х) << 63 >> 63; }));
ПРОВЕРИТЬ(0, ({ символ х[16]; (беззнак длин)&х % 16; }));
ПРОВЕРИТЬ(0, ({ символ х[17]; (беззнак длин)&х % 16; }));
ПРОВЕРИТЬ(0, ({ символ х[100]; (беззнак длин)&х % 16; }));
ПРОВЕРИТЬ(0, ({ символ х[101]; (беззнак длин)&х % 16; }));
печатьф("OK\n");
возврат 0;
}