This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Why auto variables NOT overlap on stack?


There's another funny thing about gcc3 behavior which I've just discovered:

$ gcc -v 2>&1 | grep version
gcc version 3.4.2

$ gcc -o mem mem.c ; ./mem
-1024
$ gcc -o mem1 mem1.c ; ./mem1
0

$ cat mem.c
#include <stdio.h>

int main() {
        char *p1, *p2;
        {
                char a[1024];
                p1 = a;
        }
        {
                char a[1024];
                p2 = a;
        }
        printf("%d\n", p2 - p1);
        return 0;
}

$ cat mem1.c
#include <stdio.h>

static const int N = 1024;

int main() {
        char *p1, *p2;
        {
                char a[N];
                p1 = a;
        }
        {
                char a[N];
                p2 = a;
        }
        printf("%d\n", p2 - p1);
        return 0;
}


Alexey


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]