delorie.com/archives/browse.cgi | search |
From: | "Tim Nicholson" <T DOT J DOT Nicholson AT btinternet DOT com> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | posible bug in GCC syntax checker? |
Date: | Thu, 11 Oct 2001 19:13:02 +0100 |
Organization: | Skyforce avionics Limited |
Lines: | 53 |
Message-ID: | <9q4nm9$lc9$1@plutonium.btinternet.com> |
NNTP-Posting-Host: | host213-1-148-154.btinternet.com |
X-Priority: | 3 |
X-MSMail-Priority: | Normal |
X-Newsreader: | Microsoft Outlook Express 5.50.4133.2400 |
X-MimeOLE: | Produced By Microsoft MimeOLE V5.50.4133.2400 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
I think I have found a bug in the GCC syntax checker! When I compile the following code, I get the message... Warning: Passing arg 1 of draw_item from incompatible pointer type ------------- source code --------- //Local function prototype void draw_item(const int point_array[ ][2]); //function main int main(void) { int item[5][2]; {some code to initialise item}; draw_item(item); return; } //function draw_item void draw_item(const int point_array[ ][2]) { {some code to draw a point_array}; } ----------- end of code -------- This seemed very strange so I tried changing the prototype to see if I could understand what was happening. Eventually, I discovered that I no longer got the warning when I defined the prototype as: void draw_item(int (* const point_array) [2]); Now, correct me if I am wrong, but is this not the same thing in practical terms? I do not understand why the compiler complains about the first definition. Is it a GCC bug? I am using DJGPP GCC-2.95.2 : GNU C compiler binaries with no compiler flags. Thanks Tim
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |