gcc question

Nikos Mavroyanopoulos nmav at gnutls.org
Tue Nov 19 11:53:04 EET 2002


On Mon, Nov 18, 2002 at 04:28:53PM -0500, Constantinos Antoniou wrote:

> Ena problima pou antimetwpizoume sto lab mou einai oti enw oi compilers
> pro tou 2.96 (inclusive) itan arketa elastikoi stis diafores tarzanies
> (lege me bit-shift operations, etc), ston 3.2 liga apo ayta pernane....

bit-shift? Τι ακριβώς; Απο τα λίγα ωραία που δεν δουλευουν με τον
gcc3.2 ηταν το malloc σε struct του στύλ:
struct x {
   int size;
   char data[1];
}

struct x *y;
y = malloc( sizeof(struct x) + 20);
και το data είχε χώρο για 21 bytes. Αλλά αυτό δεν είναι ANSI C
(και μπορεί παλι ευκολα να γίνει σε ansi C). 

Επισης ήταν και το access σε struct του στύλ:
{
struct x;
char * data;

data = &x + 4;
}

Αλλά αυτό ειδικά είναι NO NO, και αναφέρεται ρητά στο comp.lang.c faq.
Οταν καποιος θελει καλό optimizer, πρεπει να ζήσει με αυτόν :)

> kai den einai apli ipothesi na kaneis megala engineering paketa gcc3.2
> compliant.

Δεν νομίζω. Αν το πακέτο ειχε δοκιμαστεί μονο στον gcc-2.95, ίσως.
Αν ομως εχει δοκιμαστεί απο μια μεγάλη γκαμα απο C compilers, τοτε το
βλεπω δυσκολο να μην εχουν πεταχτεί τα μη ansi C κομμάτια εξω.

> Costas

-- 
Nikos Mavroyanopoulos



More information about the Linux-greek-users mailing list