| www.delorie.com/archives/browse.cgi | search |
| From: | zacharyshort AT hotmail DOT com (ZMAN) |
| Newsgroups: | comp.os.msdos.djgpp,comp.lang.c++,comp.lang.c |
| Subject: | DJGPP reserves wrong int size |
| Date: | 24 Jun 2001 11:53:48 -0700 |
| Organization: | http://groups.google.com/ |
| Lines: | 37 |
| Message-ID: | <9dde68b7.0106241053.2a385311@posting.google.com> |
| NNTP-Posting-Host: | 216.227.178.111 |
| X-Trace: | posting.google.com 993408828 30556 127.0.0.1 (24 Jun 2001 18:53:48 GMT) |
| X-Complaints-To: | groups-support AT google DOT com |
| NNTP-Posting-Date: | 24 Jun 2001 18:53:48 GMT |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| Reply-To: | djgpp AT delorie DOT com |
Please consider the following code:
int main ()
{
int i;
i = 0x12345678;
}
-Yes I am aware there is no return statement even if I do have it in there
it still messes up.
When I compile this code using:
gcc -c test.c
ld -o test -Ttext 0x0 -e main test.o
objcopy -R .note -R .comment -S -O binary test test.bin
and disassemble it I get the following:
00000000 55 push ebp
00000001 89E5 mov ebp,esp
00000003 83EC04 sub esp,byte +0x18
00000006 C745FC78563412 mov dword [ebp-0x4],0x12345678
0000000D C9 leave
0000000E C3 ret
The third line reserves 18 bytes.
And it should reserve 4 bytes because thats the size of an int right?
If you declare a char it still reserves 18 bytes.
Could someone tell me what's going on? I am loosing my mind!
Line 4 is correct though.
I am compiling this on Windows 98 and ME boxes and still get the same results.
The gcc version number is 2.953
binutills is version 2.11
thanks for any help
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |