Last change
on this file since 331 was 331, checked in by coas-nagasima, 6 years ago |
prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl
|
-
Property svn:eol-style
set to
native
-
Property svn:mime-type
set to
text/x-csrc
|
File size:
1.3 KB
|
Rev | Line | |
---|
[331] | 1 | /* integer promotion */
|
---|
| 2 |
|
---|
| 3 | int printf(const char*, ...);
|
---|
| 4 | #define promote(s) printf(" %ssigned : %s\n", (s) - 100 < 0 ? " " : "un", #s);
|
---|
| 5 |
|
---|
| 6 | int main (void)
|
---|
| 7 | {
|
---|
| 8 | struct {
|
---|
| 9 | unsigned ub:3;
|
---|
| 10 | unsigned u:32;
|
---|
| 11 | unsigned long long ullb:35;
|
---|
| 12 | unsigned long long ull:64;
|
---|
| 13 | unsigned char c;
|
---|
| 14 | } s = { 1, 1, 1 };
|
---|
| 15 |
|
---|
| 16 | promote(s.ub);
|
---|
| 17 | promote(s.u);
|
---|
| 18 | promote(s.ullb);
|
---|
| 19 | promote(s.ull);
|
---|
| 20 | promote(s.c);
|
---|
| 21 | printf("\n");
|
---|
| 22 |
|
---|
| 23 | promote((1 ? s.ub : 1));
|
---|
| 24 | promote((1 ? s.u : 1));
|
---|
| 25 | promote((1 ? s.ullb : 1));
|
---|
| 26 | promote((1 ? s.ull : 1));
|
---|
| 27 | promote((1 ? s.c : 1));
|
---|
| 28 | printf("\n");
|
---|
| 29 |
|
---|
| 30 | promote(s.ub << 1);
|
---|
| 31 | promote(s.u << 1);
|
---|
| 32 | promote(s.ullb << 1);
|
---|
| 33 | promote(s.ull << 1);
|
---|
| 34 | promote(s.c << 1);
|
---|
| 35 | printf("\n");
|
---|
| 36 |
|
---|
| 37 | promote(+s.ub);
|
---|
| 38 | promote(+s.u);
|
---|
| 39 | promote(+s.ullb);
|
---|
| 40 | promote(+s.ull);
|
---|
| 41 | promote(+s.c);
|
---|
| 42 | printf("\n");
|
---|
| 43 |
|
---|
| 44 | promote(-s.ub);
|
---|
| 45 | promote(-s.u);
|
---|
| 46 | promote(-s.ullb);
|
---|
| 47 | promote(-s.ull);
|
---|
| 48 | promote(-s.c);
|
---|
| 49 | printf("\n");
|
---|
| 50 |
|
---|
| 51 | promote(~s.ub);
|
---|
| 52 | promote(~s.u);
|
---|
| 53 | promote(~s.ullb);
|
---|
| 54 | promote(~s.ull);
|
---|
| 55 | promote(~s.c);
|
---|
| 56 | printf("\n");
|
---|
| 57 |
|
---|
| 58 | promote(!s.ub);
|
---|
| 59 | promote(!s.u);
|
---|
| 60 | promote(!s.ullb);
|
---|
| 61 | promote(!s.ull);
|
---|
| 62 | promote(!s.c);
|
---|
| 63 | printf("\n");
|
---|
| 64 |
|
---|
| 65 | promote(+(unsigned)s.ub);
|
---|
| 66 | promote(-(unsigned)s.ub);
|
---|
| 67 | promote(~(unsigned)s.ub);
|
---|
| 68 | promote(!(unsigned)s.ub);
|
---|
| 69 |
|
---|
| 70 | return 0;
|
---|
| 71 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.