diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-02-04 15:00:15 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-02-04 15:00:15 +0100 |
commit | 98a4c7cf3d799ab953cb77e8b34597c73e3e7335 (patch) | |
tree | 2d9c07825697cd7c6e96647ff0992dce4d4a0115 | |
parent | 1821d188ca674b42bf0f384b0c2332ff95701bba (diff) | |
download | busybox-w32-98a4c7cf3d799ab953cb77e8b34597c73e3e7335.tar.gz busybox-w32-98a4c7cf3d799ab953cb77e8b34597c73e3e7335.tar.bz2 busybox-w32-98a4c7cf3d799ab953cb77e8b34597c73e3e7335.zip |
*: suppress ~60% of "aliased warnings" on gcc-4.4.1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
49 files changed, 65 insertions, 58 deletions
diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c index 982404d14..d5b86ff5c 100644 --- a/archival/libunarchive/get_header_tar.c +++ b/archival/libunarchive/get_header_tar.c | |||
@@ -14,6 +14,10 @@ | |||
14 | #include "libbb.h" | 14 | #include "libbb.h" |
15 | #include "unarchive.h" | 15 | #include "unarchive.h" |
16 | 16 | ||
17 | typedef uint32_t aliased_uint32_t FIX_ALIASING; | ||
18 | typedef off_t aliased_off_t FIX_ALIASING; | ||
19 | |||
20 | |||
17 | /* | 21 | /* |
18 | * GNU tar uses "base-256 encoding" for very large numbers (>8 billion). | 22 | * GNU tar uses "base-256 encoding" for very large numbers (>8 billion). |
19 | * Encoding is binary, with highest bit always set as a marker | 23 | * Encoding is binary, with highest bit always set as a marker |
@@ -68,10 +72,10 @@ static off_t getBase256_len12(const char *str) | |||
68 | * and fetch it in one go: | 72 | * and fetch it in one go: |
69 | */ | 73 | */ |
70 | if (sizeof(off_t) == 8) { | 74 | if (sizeof(off_t) == 8) { |
71 | value = *(off_t*)str; | 75 | value = *(aliased_off_t*)str; |
72 | value = SWAP_BE64(value); | 76 | value = SWAP_BE64(value); |
73 | } else if (sizeof(off_t) == 4) { | 77 | } else if (sizeof(off_t) == 4) { |
74 | value = *(off_t*)str; | 78 | value = *(aliased_off_t*)str; |
75 | value = SWAP_BE32(value); | 79 | value = SWAP_BE32(value); |
76 | } else { | 80 | } else { |
77 | value = 0; | 81 | value = 0; |
@@ -156,7 +160,7 @@ char FAST_FUNC get_header_tar(archive_handle_t *archive_handle) | |||
156 | 160 | ||
157 | #if ENABLE_DESKTOP || ENABLE_FEATURE_TAR_AUTODETECT | 161 | #if ENABLE_DESKTOP || ENABLE_FEATURE_TAR_AUTODETECT |
158 | /* to prevent misdetection of bz2 sig */ | 162 | /* to prevent misdetection of bz2 sig */ |
159 | *(uint32_t*)(&tar) = 0; | 163 | *(aliased_uint32_t*)&tar = 0; |
160 | i = full_read(archive_handle->src_fd, &tar, 512); | 164 | i = full_read(archive_handle->src_fd, &tar, 512); |
161 | /* If GNU tar sees EOF in above read, it says: | 165 | /* If GNU tar sees EOF in above read, it says: |
162 | * "tar: A lone zero block at N", where N = kilobyte | 166 | * "tar: A lone zero block at N", where N = kilobyte |
diff --git a/archival/lzop.c b/archival/lzop.c index a752a9d89..0a15c51aa 100644 --- a/archival/lzop.c +++ b/archival/lzop.c | |||
@@ -396,7 +396,7 @@ struct globals { | |||
396 | const uint32_t *lzo_crc32_table; | 396 | const uint32_t *lzo_crc32_table; |
397 | chksum_t chksum_in; | 397 | chksum_t chksum_in; |
398 | chksum_t chksum_out; | 398 | chksum_t chksum_out; |
399 | }; | 399 | } FIX_ALIASING; |
400 | #define G (*(struct globals*)&bb_common_bufsiz1) | 400 | #define G (*(struct globals*)&bb_common_bufsiz1) |
401 | #define INIT_G() do { } while (0) | 401 | #define INIT_G() do { } while (0) |
402 | //#define G (*ptr_to_globals) | 402 | //#define G (*ptr_to_globals) |
diff --git a/console-tools/resize.c b/console-tools/resize.c index 4504cc85d..828b5bb42 100644 --- a/console-tools/resize.c +++ b/console-tools/resize.c | |||
@@ -11,12 +11,12 @@ | |||
11 | 11 | ||
12 | #define ESC "\033" | 12 | #define ESC "\033" |
13 | 13 | ||
14 | #define old_termios (*(struct termios*)&bb_common_bufsiz1) | 14 | #define old_termios_p ((struct termios*)&bb_common_bufsiz1) |
15 | 15 | ||
16 | static void | 16 | static void |
17 | onintr(int sig UNUSED_PARAM) | 17 | onintr(int sig UNUSED_PARAM) |
18 | { | 18 | { |
19 | tcsetattr(STDERR_FILENO, TCSANOW, &old_termios); | 19 | tcsetattr(STDERR_FILENO, TCSANOW, old_termios_p); |
20 | exit(EXIT_FAILURE); | 20 | exit(EXIT_FAILURE); |
21 | } | 21 | } |
22 | 22 | ||
@@ -33,8 +33,8 @@ int resize_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
33 | * and operate on it - should we do the same? | 33 | * and operate on it - should we do the same? |
34 | */ | 34 | */ |
35 | 35 | ||
36 | tcgetattr(STDERR_FILENO, &old_termios); /* fiddle echo */ | 36 | tcgetattr(STDERR_FILENO, old_termios_p); /* fiddle echo */ |
37 | new = old_termios; | 37 | memcpy(&new, old_termios_p, sizeof(new)); |
38 | new.c_cflag |= (CLOCAL | CREAD); | 38 | new.c_cflag |= (CLOCAL | CREAD); |
39 | new.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); | 39 | new.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); |
40 | bb_signals(0 | 40 | bb_signals(0 |
@@ -61,7 +61,7 @@ int resize_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
61 | * (gotten via TIOCGWINSZ) and recomputing *pixel values */ | 61 | * (gotten via TIOCGWINSZ) and recomputing *pixel values */ |
62 | ret = ioctl(STDERR_FILENO, TIOCSWINSZ, &w); | 62 | ret = ioctl(STDERR_FILENO, TIOCSWINSZ, &w); |
63 | 63 | ||
64 | tcsetattr(STDERR_FILENO, TCSANOW, &old_termios); | 64 | tcsetattr(STDERR_FILENO, TCSANOW, old_termios_p); |
65 | 65 | ||
66 | if (ENABLE_FEATURE_RESIZE_PRINT) | 66 | if (ENABLE_FEATURE_RESIZE_PRINT) |
67 | printf("COLUMNS=%d;LINES=%d;export COLUMNS LINES;\n", | 67 | printf("COLUMNS=%d;LINES=%d;export COLUMNS LINES;\n", |
diff --git a/coreutils/dd.c b/coreutils/dd.c index 8173d403d..7c1a0c0df 100644 --- a/coreutils/dd.c +++ b/coreutils/dd.c | |||
@@ -38,7 +38,7 @@ struct globals { | |||
38 | unsigned long long total_bytes; | 38 | unsigned long long total_bytes; |
39 | unsigned long long begin_time_us; | 39 | unsigned long long begin_time_us; |
40 | #endif | 40 | #endif |
41 | }; | 41 | } FIX_ALIASING; |
42 | #define G (*(struct globals*)&bb_common_bufsiz1) | 42 | #define G (*(struct globals*)&bb_common_bufsiz1) |
43 | #define INIT_G() do { \ | 43 | #define INIT_G() do { \ |
44 | /* we have to zero it out because of NOEXEC */ \ | 44 | /* we have to zero it out because of NOEXEC */ \ |
diff --git a/coreutils/du.c b/coreutils/du.c index 730d6d162..5894ed438 100644 --- a/coreutils/du.c +++ b/coreutils/du.c | |||
@@ -50,7 +50,7 @@ struct globals { | |||
50 | int slink_depth; | 50 | int slink_depth; |
51 | int du_depth; | 51 | int du_depth; |
52 | dev_t dir_dev; | 52 | dev_t dir_dev; |
53 | }; | 53 | } FIX_ALIASING; |
54 | #define G (*(struct globals*)&bb_common_bufsiz1) | 54 | #define G (*(struct globals*)&bb_common_bufsiz1) |
55 | 55 | ||
56 | 56 | ||
diff --git a/coreutils/expr.c b/coreutils/expr.c index f5701a460..f40edad4e 100644 --- a/coreutils/expr.c +++ b/coreutils/expr.c | |||
@@ -63,7 +63,7 @@ typedef struct valinfo VALUE; | |||
63 | /* The arguments given to the program, minus the program name. */ | 63 | /* The arguments given to the program, minus the program name. */ |
64 | struct globals { | 64 | struct globals { |
65 | char **args; | 65 | char **args; |
66 | }; | 66 | } FIX_ALIASING; |
67 | #define G (*(struct globals*)&bb_common_bufsiz1) | 67 | #define G (*(struct globals*)&bb_common_bufsiz1) |
68 | 68 | ||
69 | /* forward declarations */ | 69 | /* forward declarations */ |
diff --git a/coreutils/ls.c b/coreutils/ls.c index d004ce8b1..1197f7d71 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c | |||
@@ -255,7 +255,7 @@ struct globals { | |||
255 | /* Do time() just once. Saves one syscall per file for "ls -l" */ | 255 | /* Do time() just once. Saves one syscall per file for "ls -l" */ |
256 | time_t current_time_t; | 256 | time_t current_time_t; |
257 | #endif | 257 | #endif |
258 | }; | 258 | } FIX_ALIASING; |
259 | #define G (*(struct globals*)&bb_common_bufsiz1) | 259 | #define G (*(struct globals*)&bb_common_bufsiz1) |
260 | #if ENABLE_FEATURE_LS_COLOR | 260 | #if ENABLE_FEATURE_LS_COLOR |
261 | # define show_color (G.show_color ) | 261 | # define show_color (G.show_color ) |
diff --git a/coreutils/stty.c b/coreutils/stty.c index 4952d53d3..c40d718af 100644 --- a/coreutils/stty.c +++ b/coreutils/stty.c | |||
@@ -625,7 +625,7 @@ struct globals { | |||
625 | /* Current position, to know when to wrap */ | 625 | /* Current position, to know when to wrap */ |
626 | unsigned current_col; | 626 | unsigned current_col; |
627 | char buf[10]; | 627 | char buf[10]; |
628 | }; | 628 | } FIX_ALIASING; |
629 | #define G (*(struct globals*)&bb_common_bufsiz1) | 629 | #define G (*(struct globals*)&bb_common_bufsiz1) |
630 | #define INIT_G() do { \ | 630 | #define INIT_G() do { \ |
631 | G.device_name = bb_msg_standard_input; \ | 631 | G.device_name = bb_msg_standard_input; \ |
diff --git a/coreutils/tail.c b/coreutils/tail.c index 0be166315..83768d420 100644 --- a/coreutils/tail.c +++ b/coreutils/tail.c | |||
@@ -35,7 +35,7 @@ static const struct suffix_mult tail_suffixes[] = { | |||
35 | 35 | ||
36 | struct globals { | 36 | struct globals { |
37 | bool status; | 37 | bool status; |
38 | }; | 38 | } FIX_ALIASING; |
39 | #define G (*(struct globals*)&bb_common_bufsiz1) | 39 | #define G (*(struct globals*)&bb_common_bufsiz1) |
40 | 40 | ||
41 | static void tail_xprint_header(const char *fmt, const char *filename) | 41 | static void tail_xprint_header(const char *fmt, const char *filename) |
diff --git a/debianutils/run_parts.c b/debianutils/run_parts.c index ea019c27c..2854a539c 100644 --- a/debianutils/run_parts.c +++ b/debianutils/run_parts.c | |||
@@ -36,7 +36,7 @@ struct globals { | |||
36 | char **names; | 36 | char **names; |
37 | int cur; | 37 | int cur; |
38 | char *cmd[1]; | 38 | char *cmd[1]; |
39 | }; | 39 | } FIX_ALIASING; |
40 | #define G (*(struct globals*)&bb_common_bufsiz1) | 40 | #define G (*(struct globals*)&bb_common_bufsiz1) |
41 | #define names (G.names) | 41 | #define names (G.names) |
42 | #define cur (G.cur ) | 42 | #define cur (G.cur ) |
diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 10da8dce4..dfc72f01a 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c | |||
@@ -96,7 +96,7 @@ struct globals { | |||
96 | char *pidfile; | 96 | char *pidfile; |
97 | int user_id; | 97 | int user_id; |
98 | smallint signal_nr; | 98 | smallint signal_nr; |
99 | }; | 99 | } FIX_ALIASING; |
100 | #define G (*(struct globals*)&bb_common_bufsiz1) | 100 | #define G (*(struct globals*)&bb_common_bufsiz1) |
101 | #define found (G.found ) | 101 | #define found (G.found ) |
102 | #define userspec (G.userspec ) | 102 | #define userspec (G.userspec ) |
diff --git a/editors/awk.c b/editors/awk.c index bc8b0dad1..a6f3f55f7 100644 --- a/editors/awk.c +++ b/editors/awk.c | |||
@@ -444,7 +444,7 @@ struct globals2 { | |||
444 | 444 | ||
445 | /* biggest and least used members go last */ | 445 | /* biggest and least used members go last */ |
446 | tsplitter fsplitter, rsplitter; | 446 | tsplitter fsplitter, rsplitter; |
447 | }; | 447 | }; //FIX_ALIASING; - large code growth |
448 | #define G1 (ptr_to_globals[-1]) | 448 | #define G1 (ptr_to_globals[-1]) |
449 | #define G (*(struct globals2 *)ptr_to_globals) | 449 | #define G (*(struct globals2 *)ptr_to_globals) |
450 | /* For debug. nm --size-sort awk.o | grep -vi ' [tr] ' */ | 450 | /* For debug. nm --size-sort awk.o | grep -vi ' [tr] ' */ |
diff --git a/editors/sed.c b/editors/sed.c index fd9dd1be6..e5e187725 100644 --- a/editors/sed.c +++ b/editors/sed.c | |||
@@ -117,7 +117,7 @@ struct globals { | |||
117 | int idx; /* Space used */ | 117 | int idx; /* Space used */ |
118 | int len; /* Space allocated */ | 118 | int len; /* Space allocated */ |
119 | } pipeline; | 119 | } pipeline; |
120 | }; | 120 | } FIX_ALIASING; |
121 | #define G (*(struct globals*)&bb_common_bufsiz1) | 121 | #define G (*(struct globals*)&bb_common_bufsiz1) |
122 | void BUG_sed_globals_too_big(void); | 122 | void BUG_sed_globals_too_big(void); |
123 | #define INIT_G() do { \ | 123 | #define INIT_G() do { \ |
diff --git a/findutils/find.c b/findutils/find.c index b417123f6..4bc3b38dc 100644 --- a/findutils/find.c +++ b/findutils/find.c | |||
@@ -104,7 +104,7 @@ struct globals { | |||
104 | action ***actions; | 104 | action ***actions; |
105 | bool need_print; | 105 | bool need_print; |
106 | recurse_flags_t recurse_flags; | 106 | recurse_flags_t recurse_flags; |
107 | }; | 107 | } FIX_ALIASING; |
108 | #define G (*(struct globals*)&bb_common_bufsiz1) | 108 | #define G (*(struct globals*)&bb_common_bufsiz1) |
109 | #define INIT_G() do { \ | 109 | #define INIT_G() do { \ |
110 | struct G_sizecheck { \ | 110 | struct G_sizecheck { \ |
diff --git a/findutils/grep.c b/findutils/grep.c index 193b48c11..a321cc31b 100644 --- a/findutils/grep.c +++ b/findutils/grep.c | |||
@@ -111,7 +111,7 @@ struct globals { | |||
111 | /* globals used internally */ | 111 | /* globals used internally */ |
112 | llist_t *pattern_head; /* growable list of patterns to match */ | 112 | llist_t *pattern_head; /* growable list of patterns to match */ |
113 | const char *cur_file; /* the current file we are reading */ | 113 | const char *cur_file; /* the current file we are reading */ |
114 | }; | 114 | } FIX_ALIASING; |
115 | #define G (*(struct globals*)&bb_common_bufsiz1) | 115 | #define G (*(struct globals*)&bb_common_bufsiz1) |
116 | #define INIT_G() do { \ | 116 | #define INIT_G() do { \ |
117 | struct G_sizecheck { \ | 117 | struct G_sizecheck { \ |
diff --git a/include/platform.h b/include/platform.h index b58b14936..ab4402e79 100644 --- a/include/platform.h +++ b/include/platform.h | |||
@@ -100,6 +100,13 @@ | |||
100 | # define EXTERNALLY_VISIBLE | 100 | # define EXTERNALLY_VISIBLE |
101 | #endif | 101 | #endif |
102 | 102 | ||
103 | /* At 4.4 gcc become much more anal about this, need to use "aliased" types */ | ||
104 | #if __GNUC_PREREQ(4,4) | ||
105 | # define FIX_ALIASING __attribute__((__may_alias__)) | ||
106 | #else | ||
107 | # define FIX_ALIASING | ||
108 | #endif | ||
109 | |||
103 | /* We use __extension__ in some places to suppress -pedantic warnings | 110 | /* We use __extension__ in some places to suppress -pedantic warnings |
104 | about GCC extensions. This feature didn't work properly before | 111 | about GCC extensions. This feature didn't work properly before |
105 | gcc 2.8. */ | 112 | gcc 2.8. */ |
diff --git a/miscutils/crond.c b/miscutils/crond.c index 7135e4475..ebd48121d 100644 --- a/miscutils/crond.c +++ b/miscutils/crond.c | |||
@@ -94,7 +94,7 @@ struct globals { | |||
94 | char *env_var_user; | 94 | char *env_var_user; |
95 | char *env_var_home; | 95 | char *env_var_home; |
96 | #endif | 96 | #endif |
97 | }; | 97 | } FIX_ALIASING; |
98 | #define G (*(struct globals*)&bb_common_bufsiz1) | 98 | #define G (*(struct globals*)&bb_common_bufsiz1) |
99 | #define LogLevel (G.LogLevel ) | 99 | #define LogLevel (G.LogLevel ) |
100 | #define LogFile (G.LogFile ) | 100 | #define LogFile (G.LogFile ) |
diff --git a/miscutils/dc.c b/miscutils/dc.c index 7348ed349..cb4b1e9b1 100644 --- a/miscutils/dc.c +++ b/miscutils/dc.c | |||
@@ -13,7 +13,7 @@ struct globals { | |||
13 | unsigned pointer; | 13 | unsigned pointer; |
14 | unsigned base; | 14 | unsigned base; |
15 | double stack[1]; | 15 | double stack[1]; |
16 | }; | 16 | } FIX_ALIASING; |
17 | enum { STACK_SIZE = (COMMON_BUFSIZE - offsetof(struct globals, stack)) / sizeof(double) }; | 17 | enum { STACK_SIZE = (COMMON_BUFSIZE - offsetof(struct globals, stack)) / sizeof(double) }; |
18 | #define G (*(struct globals*)&bb_common_bufsiz1) | 18 | #define G (*(struct globals*)&bb_common_bufsiz1) |
19 | #define pointer (G.pointer ) | 19 | #define pointer (G.pointer ) |
diff --git a/miscutils/hdparm.c b/miscutils/hdparm.c index 399b77a4a..9738620fd 100644 --- a/miscutils/hdparm.c +++ b/miscutils/hdparm.c | |||
@@ -315,7 +315,7 @@ struct globals { | |||
315 | #ifdef DO_FLUSHCACHE | 315 | #ifdef DO_FLUSHCACHE |
316 | unsigned char flushcache[4] = { WIN_FLUSHCACHE, 0, 0, 0 }; | 316 | unsigned char flushcache[4] = { WIN_FLUSHCACHE, 0, 0, 0 }; |
317 | #endif | 317 | #endif |
318 | }; | 318 | } FIX_ALIASING; |
319 | #define G (*(struct globals*)&bb_common_bufsiz1) | 319 | #define G (*(struct globals*)&bb_common_bufsiz1) |
320 | struct BUG_G_too_big { | 320 | struct BUG_G_too_big { |
321 | char BUG_G_too_big[sizeof(G) <= COMMON_BUFSIZE ? 1 : -1]; | 321 | char BUG_G_too_big[sizeof(G) <= COMMON_BUFSIZE ? 1 : -1]; |
diff --git a/modutils/modprobe.c b/modutils/modprobe.c index f339fbdbe..292f2df22 100644 --- a/modutils/modprobe.c +++ b/modutils/modprobe.c | |||
@@ -70,7 +70,7 @@ struct globals { | |||
70 | int num_unresolved_deps; | 70 | int num_unresolved_deps; |
71 | /* bool. "Did we have 'symbol:FOO' requested on cmdline?" */ | 71 | /* bool. "Did we have 'symbol:FOO' requested on cmdline?" */ |
72 | smallint need_symbols; | 72 | smallint need_symbols; |
73 | }; | 73 | } FIX_ALIASING; |
74 | #define G (*(struct globals*)&bb_common_bufsiz1) | 74 | #define G (*(struct globals*)&bb_common_bufsiz1) |
75 | #define INIT_G() do { } while (0) | 75 | #define INIT_G() do { } while (0) |
76 | 76 | ||
diff --git a/modutils/modutils-24.c b/modutils/modutils-24.c index 442e80f2f..05c1bf2b2 100644 --- a/modutils/modutils-24.c +++ b/modutils/modutils-24.c | |||
@@ -3203,6 +3203,7 @@ static int obj_create_image(struct obj_file *f, char *image) | |||
3203 | 3203 | ||
3204 | static struct obj_file *obj_load(char *image, size_t image_size, int loadprogbits) | 3204 | static struct obj_file *obj_load(char *image, size_t image_size, int loadprogbits) |
3205 | { | 3205 | { |
3206 | typedef uint32_t aliased_uint32_t FIX_ALIASING; | ||
3206 | #if BB_LITTLE_ENDIAN | 3207 | #if BB_LITTLE_ENDIAN |
3207 | # define ELFMAG_U32 ((uint32_t)(ELFMAG0 + 0x100 * (ELFMAG1 + (0x100 * (ELFMAG2 + 0x100 * ELFMAG3))))) | 3208 | # define ELFMAG_U32 ((uint32_t)(ELFMAG0 + 0x100 * (ELFMAG1 + (0x100 * (ELFMAG2 + 0x100 * ELFMAG3))))) |
3208 | #else | 3209 | #else |
@@ -3224,7 +3225,7 @@ static struct obj_file *obj_load(char *image, size_t image_size, int loadprogbit | |||
3224 | bb_error_msg_and_die("error while loading ELF header"); | 3225 | bb_error_msg_and_die("error while loading ELF header"); |
3225 | memcpy(&f->header, image, sizeof(f->header)); | 3226 | memcpy(&f->header, image, sizeof(f->header)); |
3226 | 3227 | ||
3227 | if (*(uint32_t*)(&f->header.e_ident) != ELFMAG_U32) { | 3228 | if (*(aliased_uint32_t*)(&f->header.e_ident) != ELFMAG_U32) { |
3228 | bb_error_msg_and_die("not an ELF file"); | 3229 | bb_error_msg_and_die("not an ELF file"); |
3229 | } | 3230 | } |
3230 | if (f->header.e_ident[EI_CLASS] != ELFCLASSM | 3231 | if (f->header.e_ident[EI_CLASS] != ELFCLASSM |
diff --git a/networking/arp.c b/networking/arp.c index 278f2dc9a..0ef267a35 100644 --- a/networking/arp.c +++ b/networking/arp.c | |||
@@ -51,7 +51,7 @@ struct globals { | |||
51 | const char *device; /* current device */ | 51 | const char *device; /* current device */ |
52 | smallint hw_set; /* flag if hw-type was set (-H) */ | 52 | smallint hw_set; /* flag if hw-type was set (-H) */ |
53 | 53 | ||
54 | }; | 54 | } FIX_ALIASING; |
55 | #define G (*(struct globals*)&bb_common_bufsiz1) | 55 | #define G (*(struct globals*)&bb_common_bufsiz1) |
56 | #define ap (G.ap ) | 56 | #define ap (G.ap ) |
57 | #define hw (G.hw ) | 57 | #define hw (G.hw ) |
diff --git a/networking/arping.c b/networking/arping.c index e3418a945..effe418a6 100644 --- a/networking/arping.c +++ b/networking/arping.c | |||
@@ -45,7 +45,7 @@ struct globals { | |||
45 | unsigned received; | 45 | unsigned received; |
46 | unsigned brd_recv; | 46 | unsigned brd_recv; |
47 | unsigned req_recv; | 47 | unsigned req_recv; |
48 | }; | 48 | } FIX_ALIASING; |
49 | #define G (*(struct globals*)&bb_common_bufsiz1) | 49 | #define G (*(struct globals*)&bb_common_bufsiz1) |
50 | #define src (G.src ) | 50 | #define src (G.src ) |
51 | #define dst (G.dst ) | 51 | #define dst (G.dst ) |
diff --git a/networking/ftpd.c b/networking/ftpd.c index b7d5b20b1..186ff50ce 100644 --- a/networking/ftpd.c +++ b/networking/ftpd.c | |||
@@ -106,7 +106,7 @@ struct globals { | |||
106 | /* We need these aligned to uint32_t */ | 106 | /* We need these aligned to uint32_t */ |
107 | char msg_ok [(sizeof("NNN " MSG_OK ) + 3) & 0xfffc]; | 107 | char msg_ok [(sizeof("NNN " MSG_OK ) + 3) & 0xfffc]; |
108 | char msg_err[(sizeof("NNN " MSG_ERR) + 3) & 0xfffc]; | 108 | char msg_err[(sizeof("NNN " MSG_ERR) + 3) & 0xfffc]; |
109 | }; | 109 | } FIX_ALIASING; |
110 | #define G (*(struct globals*)&bb_common_bufsiz1) | 110 | #define G (*(struct globals*)&bb_common_bufsiz1) |
111 | #define INIT_G() do { \ | 111 | #define INIT_G() do { \ |
112 | /* Moved to main */ \ | 112 | /* Moved to main */ \ |
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c index 2dd7e9232..120ccff83 100644 --- a/networking/ftpgetput.c +++ b/networking/ftpgetput.c | |||
@@ -23,7 +23,7 @@ struct globals { | |||
23 | int verbose_flag; | 23 | int verbose_flag; |
24 | int do_continue; | 24 | int do_continue; |
25 | char buf[1]; /* actually [BUFSZ] */ | 25 | char buf[1]; /* actually [BUFSZ] */ |
26 | }; | 26 | } FIX_ALIASING; |
27 | #define G (*(struct globals*)&bb_common_bufsiz1) | 27 | #define G (*(struct globals*)&bb_common_bufsiz1) |
28 | enum { BUFSZ = COMMON_BUFSIZE - offsetof(struct globals, buf) }; | 28 | enum { BUFSZ = COMMON_BUFSIZE - offsetof(struct globals, buf) }; |
29 | struct BUG_G_too_big { | 29 | struct BUG_G_too_big { |
diff --git a/networking/ifupdown.c b/networking/ifupdown.c index 51b36263f..bf88b1c19 100644 --- a/networking/ifupdown.c +++ b/networking/ifupdown.c | |||
@@ -106,7 +106,7 @@ enum { | |||
106 | struct globals { | 106 | struct globals { |
107 | char **my_environ; | 107 | char **my_environ; |
108 | const char *startup_PATH; | 108 | const char *startup_PATH; |
109 | }; | 109 | } FIX_ALIASING; |
110 | #define G (*(struct globals*)&bb_common_bufsiz1) | 110 | #define G (*(struct globals*)&bb_common_bufsiz1) |
111 | #define INIT_G() do { } while (0) | 111 | #define INIT_G() do { } while (0) |
112 | 112 | ||
diff --git a/networking/inetd.c b/networking/inetd.c index a45573396..7aa6b7b19 100644 --- a/networking/inetd.c +++ b/networking/inetd.c | |||
@@ -313,7 +313,7 @@ struct globals { | |||
313 | fd_set allsock; | 313 | fd_set allsock; |
314 | /* Used in next_line(), and as scratch read buffer */ | 314 | /* Used in next_line(), and as scratch read buffer */ |
315 | char line[256]; /* _at least_ 256, see LINE_SIZE */ | 315 | char line[256]; /* _at least_ 256, see LINE_SIZE */ |
316 | }; | 316 | } FIX_ALIASING; |
317 | #define G (*(struct globals*)&bb_common_bufsiz1) | 317 | #define G (*(struct globals*)&bb_common_bufsiz1) |
318 | enum { LINE_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line) }; | 318 | enum { LINE_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line) }; |
319 | struct BUG_G_too_big { | 319 | struct BUG_G_too_big { |
diff --git a/networking/ping.c b/networking/ping.c index 23b39f2e2..467b7f694 100644 --- a/networking/ping.c +++ b/networking/ping.c | |||
@@ -263,7 +263,7 @@ struct globals { | |||
263 | #endif | 263 | #endif |
264 | } pingaddr; | 264 | } pingaddr; |
265 | char rcvd_tbl[MAX_DUP_CHK / 8]; | 265 | char rcvd_tbl[MAX_DUP_CHK / 8]; |
266 | }; | 266 | } FIX_ALIASING; |
267 | #define G (*(struct globals*)&bb_common_bufsiz1) | 267 | #define G (*(struct globals*)&bb_common_bufsiz1) |
268 | #define pingsock (G.pingsock ) | 268 | #define pingsock (G.pingsock ) |
269 | #define if_index (G.if_index ) | 269 | #define if_index (G.if_index ) |
diff --git a/networking/slattach.c b/networking/slattach.c index d3212bb40..12a3067de 100644 --- a/networking/slattach.c +++ b/networking/slattach.c | |||
@@ -20,7 +20,7 @@ struct globals { | |||
20 | int handle; | 20 | int handle; |
21 | int saved_disc; | 21 | int saved_disc; |
22 | struct termios saved_state; | 22 | struct termios saved_state; |
23 | }; | 23 | } FIX_ALIASING; |
24 | #define G (*(struct globals*)&bb_common_bufsiz1) | 24 | #define G (*(struct globals*)&bb_common_bufsiz1) |
25 | #define handle (G.handle ) | 25 | #define handle (G.handle ) |
26 | #define saved_disc (G.saved_disc ) | 26 | #define saved_disc (G.saved_disc ) |
diff --git a/networking/tc.c b/networking/tc.c index 541a0f8f4..6a5a8504f 100644 --- a/networking/tc.c +++ b/networking/tc.c | |||
@@ -43,8 +43,7 @@ struct globals { | |||
43 | __u32 filter_parent; | 43 | __u32 filter_parent; |
44 | __u32 filter_prio; | 44 | __u32 filter_prio; |
45 | __u32 filter_proto; | 45 | __u32 filter_proto; |
46 | }; | 46 | } FIX_ALIASING; |
47 | |||
48 | #define G (*(struct globals*)&bb_common_bufsiz1) | 47 | #define G (*(struct globals*)&bb_common_bufsiz1) |
49 | #define filter_ifindex (G.filter_ifindex) | 48 | #define filter_ifindex (G.filter_ifindex) |
50 | #define filter_qdisc (G.filter_qdisc) | 49 | #define filter_qdisc (G.filter_qdisc) |
diff --git a/networking/tcpudp.c b/networking/tcpudp.c index d0db33b79..42845df0e 100644 --- a/networking/tcpudp.c +++ b/networking/tcpudp.c | |||
@@ -50,7 +50,7 @@ struct globals { | |||
50 | unsigned cmax; | 50 | unsigned cmax; |
51 | char **env_cur; | 51 | char **env_cur; |
52 | char *env_var[1]; /* actually bigger */ | 52 | char *env_var[1]; /* actually bigger */ |
53 | }; | 53 | } FIX_ALIASING; |
54 | #define G (*(struct globals*)&bb_common_bufsiz1) | 54 | #define G (*(struct globals*)&bb_common_bufsiz1) |
55 | #define verbose (G.verbose ) | 55 | #define verbose (G.verbose ) |
56 | #define max_per_host (G.max_per_host) | 56 | #define max_per_host (G.max_per_host) |
diff --git a/networking/telnet.c b/networking/telnet.c index 013d959a1..344bb0daa 100644 --- a/networking/telnet.c +++ b/networking/telnet.c | |||
@@ -75,7 +75,7 @@ struct globals { | |||
75 | char iacbuf[IACBUFSIZE]; | 75 | char iacbuf[IACBUFSIZE]; |
76 | struct termios termios_def; | 76 | struct termios termios_def; |
77 | struct termios termios_raw; | 77 | struct termios termios_raw; |
78 | }; | 78 | } FIX_ALIASING; |
79 | #define G (*(struct globals*)&bb_common_bufsiz1) | 79 | #define G (*(struct globals*)&bb_common_bufsiz1) |
80 | #define INIT_G() do { \ | 80 | #define INIT_G() do { \ |
81 | struct G_sizecheck { \ | 81 | struct G_sizecheck { \ |
diff --git a/networking/telnetd.c b/networking/telnetd.c index b0a1cc4d8..dd59de9d4 100644 --- a/networking/telnetd.c +++ b/networking/telnetd.c | |||
@@ -60,7 +60,7 @@ struct globals { | |||
60 | const char *loginpath; | 60 | const char *loginpath; |
61 | const char *issuefile; | 61 | const char *issuefile; |
62 | int maxfd; | 62 | int maxfd; |
63 | }; | 63 | } FIX_ALIASING; |
64 | #define G (*(struct globals*)&bb_common_bufsiz1) | 64 | #define G (*(struct globals*)&bb_common_bufsiz1) |
65 | #define INIT_G() do { \ | 65 | #define INIT_G() do { \ |
66 | G.loginpath = "/bin/login"; \ | 66 | G.loginpath = "/bin/login"; \ |
diff --git a/networking/tftp.c b/networking/tftp.c index b2c3c033c..0e5b48d40 100644 --- a/networking/tftp.c +++ b/networking/tftp.c | |||
@@ -90,7 +90,7 @@ struct globals { | |||
90 | const char *file; | 90 | const char *file; |
91 | bb_progress_t pmt; | 91 | bb_progress_t pmt; |
92 | #endif | 92 | #endif |
93 | }; | 93 | } FIX_ALIASING; |
94 | #define G (*(struct globals*)&bb_common_bufsiz1) | 94 | #define G (*(struct globals*)&bb_common_bufsiz1) |
95 | struct BUG_G_too_big { | 95 | struct BUG_G_too_big { |
96 | char BUG_G_too_big[sizeof(G) <= COMMON_BUFSIZE ? 1 : -1]; | 96 | char BUG_G_too_big[sizeof(G) <= COMMON_BUFSIZE ? 1 : -1]; |
diff --git a/networking/wget.c b/networking/wget.c index ad1770b58..9d813dcc2 100644 --- a/networking/wget.c +++ b/networking/wget.c | |||
@@ -30,7 +30,7 @@ struct globals { | |||
30 | #endif | 30 | #endif |
31 | smallint chunked; /* chunked transfer encoding */ | 31 | smallint chunked; /* chunked transfer encoding */ |
32 | smallint got_clen; /* got content-length: from server */ | 32 | smallint got_clen; /* got content-length: from server */ |
33 | }; | 33 | } FIX_ALIASING; |
34 | #define G (*(struct globals*)&bb_common_bufsiz1) | 34 | #define G (*(struct globals*)&bb_common_bufsiz1) |
35 | struct BUG_G_too_big { | 35 | struct BUG_G_too_big { |
36 | char BUG_G_too_big[sizeof(G) <= COMMON_BUFSIZE ? 1 : -1]; | 36 | char BUG_G_too_big[sizeof(G) <= COMMON_BUFSIZE ? 1 : -1]; |
diff --git a/networking/zcip.c b/networking/zcip.c index a4da5cbcd..db10d0a26 100644 --- a/networking/zcip.c +++ b/networking/zcip.c | |||
@@ -77,7 +77,7 @@ enum { | |||
77 | struct globals { | 77 | struct globals { |
78 | struct sockaddr saddr; | 78 | struct sockaddr saddr; |
79 | struct ether_addr eth_addr; | 79 | struct ether_addr eth_addr; |
80 | }; | 80 | } FIX_ALIASING; |
81 | #define G (*(struct globals*)&bb_common_bufsiz1) | 81 | #define G (*(struct globals*)&bb_common_bufsiz1) |
82 | #define saddr (G.saddr ) | 82 | #define saddr (G.saddr ) |
83 | #define eth_addr (G.eth_addr) | 83 | #define eth_addr (G.eth_addr) |
diff --git a/procps/ps.c b/procps/ps.c index 0b674ffb4..91ebd6819 100644 --- a/procps/ps.c +++ b/procps/ps.c | |||
@@ -49,7 +49,7 @@ struct globals { | |||
49 | unsigned long long seconds_since_boot; | 49 | unsigned long long seconds_since_boot; |
50 | #endif | 50 | #endif |
51 | char default_o[sizeof(DEFAULT_O_STR)]; | 51 | char default_o[sizeof(DEFAULT_O_STR)]; |
52 | }; | 52 | } FIX_ALIASING; |
53 | #define G (*(struct globals*)&bb_common_bufsiz1) | 53 | #define G (*(struct globals*)&bb_common_bufsiz1) |
54 | #define out (G.out ) | 54 | #define out (G.out ) |
55 | #define out_cnt (G.out_cnt ) | 55 | #define out_cnt (G.out_cnt ) |
diff --git a/procps/top.c b/procps/top.c index f514df78a..d76d9af78 100644 --- a/procps/top.c +++ b/procps/top.c | |||
@@ -100,10 +100,8 @@ struct globals { | |||
100 | int num_cpus; | 100 | int num_cpus; |
101 | #endif | 101 | #endif |
102 | char line_buf[80]; | 102 | char line_buf[80]; |
103 | }; | 103 | }; //FIX_ALIASING; - large code growth |
104 | |||
105 | enum { LINE_BUF_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line_buf) }; | 104 | enum { LINE_BUF_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line_buf) }; |
106 | |||
107 | #define G (*(struct globals*)&bb_common_bufsiz1) | 105 | #define G (*(struct globals*)&bb_common_bufsiz1) |
108 | #define INIT_G() do { \ | 106 | #define INIT_G() do { \ |
109 | struct G_sizecheck { \ | 107 | struct G_sizecheck { \ |
diff --git a/runit/runsv.c b/runit/runsv.c index 48b83960d..5b221e90a 100644 --- a/runit/runsv.c +++ b/runit/runsv.c | |||
@@ -95,7 +95,7 @@ struct globals { | |||
95 | struct fd_pair logpipe; | 95 | struct fd_pair logpipe; |
96 | char *dir; | 96 | char *dir; |
97 | struct svdir svd[2]; | 97 | struct svdir svd[2]; |
98 | }; | 98 | } FIX_ALIASING; |
99 | #define G (*(struct globals*)&bb_common_bufsiz1) | 99 | #define G (*(struct globals*)&bb_common_bufsiz1) |
100 | #define haslog (G.haslog ) | 100 | #define haslog (G.haslog ) |
101 | #define sigterm (G.sigterm ) | 101 | #define sigterm (G.sigterm ) |
diff --git a/runit/runsvdir.c b/runit/runsvdir.c index f6aaeb7d4..71fde757e 100644 --- a/runit/runsvdir.c +++ b/runit/runsvdir.c | |||
@@ -58,7 +58,7 @@ struct globals { | |||
58 | struct pollfd pfd[1]; | 58 | struct pollfd pfd[1]; |
59 | unsigned stamplog; | 59 | unsigned stamplog; |
60 | #endif | 60 | #endif |
61 | }; | 61 | } FIX_ALIASING; |
62 | #define G (*(struct globals*)&bb_common_bufsiz1) | 62 | #define G (*(struct globals*)&bb_common_bufsiz1) |
63 | #define sv (G.sv ) | 63 | #define sv (G.sv ) |
64 | #define svdir (G.svdir ) | 64 | #define svdir (G.svdir ) |
diff --git a/runit/sv.c b/runit/sv.c index 96ebb749d..3f76a2d47 100644 --- a/runit/sv.c +++ b/runit/sv.c | |||
@@ -165,7 +165,7 @@ struct globals { | |||
165 | /* "Bernstein" time format: unix + 0x400000000000000aULL */ | 165 | /* "Bernstein" time format: unix + 0x400000000000000aULL */ |
166 | uint64_t tstart, tnow; | 166 | uint64_t tstart, tnow; |
167 | svstatus_t svstatus; | 167 | svstatus_t svstatus; |
168 | }; | 168 | } FIX_ALIASING; |
169 | #define G (*(struct globals*)&bb_common_bufsiz1) | 169 | #define G (*(struct globals*)&bb_common_bufsiz1) |
170 | #define acts (G.acts ) | 170 | #define acts (G.acts ) |
171 | #define service (G.service ) | 171 | #define service (G.service ) |
diff --git a/runit/svlogd.c b/runit/svlogd.c index f556c7db5..fc8b4abb9 100644 --- a/runit/svlogd.c +++ b/runit/svlogd.c | |||
@@ -184,7 +184,7 @@ struct globals { | |||
184 | 184 | ||
185 | sigset_t blocked_sigset; | 185 | sigset_t blocked_sigset; |
186 | }; | 186 | }; |
187 | #define G (*(struct globals*)ptr_to_globals) | 187 | #define G (*ptr_to_globals) |
188 | #define dir (G.dir ) | 188 | #define dir (G.dir ) |
189 | #define verbose (G.verbose ) | 189 | #define verbose (G.verbose ) |
190 | #define linemax (G.linemax ) | 190 | #define linemax (G.linemax ) |
diff --git a/selinux/setfiles.c b/selinux/setfiles.c index 4686d8042..f45e41b2b 100644 --- a/selinux/setfiles.c +++ b/selinux/setfiles.c | |||
@@ -35,8 +35,7 @@ struct globals { | |||
35 | dev_t dev_id; /* Device id where target file exists */ | 35 | dev_t dev_id; /* Device id where target file exists */ |
36 | int nerr; | 36 | int nerr; |
37 | struct edir excludeArray[MAX_EXCLUDES]; | 37 | struct edir excludeArray[MAX_EXCLUDES]; |
38 | }; | 38 | } FIX_ALIASING; |
39 | |||
40 | #define G (*(struct globals*)&bb_common_bufsiz1) | 39 | #define G (*(struct globals*)&bb_common_bufsiz1) |
41 | void BUG_setfiles_globals_too_big(void); | 40 | void BUG_setfiles_globals_too_big(void); |
42 | #define INIT_G() do { \ | 41 | #define INIT_G() do { \ |
diff --git a/sysklogd/logread.c b/sysklogd/logread.c index 932bbecbb..1e8d6bcc0 100644 --- a/sysklogd/logread.c +++ b/sysklogd/logread.c | |||
@@ -34,7 +34,7 @@ struct globals { | |||
34 | struct sembuf SMrup[1]; // {0, -1, IPC_NOWAIT | SEM_UNDO}, | 34 | struct sembuf SMrup[1]; // {0, -1, IPC_NOWAIT | SEM_UNDO}, |
35 | struct sembuf SMrdn[2]; // {1, 0}, {0, +1, SEM_UNDO} | 35 | struct sembuf SMrdn[2]; // {1, 0}, {0, +1, SEM_UNDO} |
36 | struct shbuf_ds *shbuf; | 36 | struct shbuf_ds *shbuf; |
37 | }; | 37 | } FIX_ALIASING; |
38 | #define G (*(struct globals*)&bb_common_bufsiz1) | 38 | #define G (*(struct globals*)&bb_common_bufsiz1) |
39 | #define SMrup (G.SMrup) | 39 | #define SMrup (G.SMrup) |
40 | #define SMrdn (G.SMrdn) | 40 | #define SMrdn (G.SMrdn) |
diff --git a/util-linux/fsck_minix.c b/util-linux/fsck_minix.c index feece9920..970f5f79f 100644 --- a/util-linux/fsck_minix.c +++ b/util-linux/fsck_minix.c | |||
@@ -157,7 +157,6 @@ struct globals { | |||
157 | /* File-name data */ | 157 | /* File-name data */ |
158 | char current_name[MAX_DEPTH * MINIX_NAME_MAX]; | 158 | char current_name[MAX_DEPTH * MINIX_NAME_MAX]; |
159 | }; | 159 | }; |
160 | |||
161 | #define G (*ptr_to_globals) | 160 | #define G (*ptr_to_globals) |
162 | #if ENABLE_FEATURE_MINIX2 | 161 | #if ENABLE_FEATURE_MINIX2 |
163 | #define version2 (G.version2 ) | 162 | #define version2 (G.version2 ) |
diff --git a/util-linux/mdev.c b/util-linux/mdev.c index 80549d1b7..69e1e6937 100644 --- a/util-linux/mdev.c +++ b/util-linux/mdev.c | |||
@@ -64,7 +64,7 @@ | |||
64 | struct globals { | 64 | struct globals { |
65 | int root_major, root_minor; | 65 | int root_major, root_minor; |
66 | char *subsystem; | 66 | char *subsystem; |
67 | }; | 67 | } FIX_ALIASING; |
68 | #define G (*(struct globals*)&bb_common_bufsiz1) | 68 | #define G (*(struct globals*)&bb_common_bufsiz1) |
69 | #define root_major (G.root_major) | 69 | #define root_major (G.root_major) |
70 | #define root_minor (G.root_minor) | 70 | #define root_minor (G.root_minor) |
diff --git a/util-linux/more.c b/util-linux/more.c index 076b40057..55694e434 100644 --- a/util-linux/more.c +++ b/util-linux/more.c | |||
@@ -22,7 +22,7 @@ struct globals { | |||
22 | int cin_fileno; | 22 | int cin_fileno; |
23 | struct termios initial_settings; | 23 | struct termios initial_settings; |
24 | struct termios new_settings; | 24 | struct termios new_settings; |
25 | }; | 25 | } FIX_ALIASING; |
26 | #define G (*(struct globals*)bb_common_bufsiz1) | 26 | #define G (*(struct globals*)bb_common_bufsiz1) |
27 | #define INIT_G() ((void)0) | 27 | #define INIT_G() ((void)0) |
28 | #define initial_settings (G.initial_settings) | 28 | #define initial_settings (G.initial_settings) |
diff --git a/util-linux/mount.c b/util-linux/mount.c index 23a345931..0bad59770 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c | |||
@@ -268,7 +268,7 @@ struct globals { | |||
268 | llist_t *fslist; | 268 | llist_t *fslist; |
269 | char getmntent_buf[1]; | 269 | char getmntent_buf[1]; |
270 | 270 | ||
271 | }; | 271 | } FIX_ALIASING; |
272 | enum { GETMNTENT_BUFSIZE = COMMON_BUFSIZE - offsetof(struct globals, getmntent_buf) }; | 272 | enum { GETMNTENT_BUFSIZE = COMMON_BUFSIZE - offsetof(struct globals, getmntent_buf) }; |
273 | #define G (*(struct globals*)&bb_common_bufsiz1) | 273 | #define G (*(struct globals*)&bb_common_bufsiz1) |
274 | #define nfs_mount_version (G.nfs_mount_version) | 274 | #define nfs_mount_version (G.nfs_mount_version) |
diff --git a/util-linux/swaponoff.c b/util-linux/swaponoff.c index 33ad00ac1..f647a32bc 100644 --- a/util-linux/swaponoff.c +++ b/util-linux/swaponoff.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #if ENABLE_FEATURE_SWAPON_PRI | 20 | #if ENABLE_FEATURE_SWAPON_PRI |
21 | struct globals { | 21 | struct globals { |
22 | int flags; | 22 | int flags; |
23 | }; | 23 | } FIX_ALIASING; |
24 | #define G (*(struct globals*)&bb_common_bufsiz1) | 24 | #define G (*(struct globals*)&bb_common_bufsiz1) |
25 | #define g_flags (G.flags) | 25 | #define g_flags (G.flags) |
26 | #else | 26 | #else |