[Bug c/47143] New: warning about const multidimensional array as function parameter
rogi at linuxmail dot org
gcc-bugzilla@gcc.gnu.org
Sat Jan 1 05:38:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47143
Summary: warning about const multidimensional array as function
parameter
Product: gcc
Version: 4.4.3
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: c
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: rogi@linuxmail.org
Created attachment 22876
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22876
source which produces warning
Ehllo,
I'm getting some strange warning about this code:
--- snip ---
typedef double mat4[4][4];
void mprod4(mat4 r, const mat4 a, const mat4 b)
{
/* yes, function is empty */
}
int main()
{
mat4 mr, ma, mb;
mprod4(mr, ma, mb);
}
------------
gcc output as follows:
--- snip ----
$ gcc -o test test.c
test.c: In function 'main':
test.c:13: warning: passing argument 2 of 'mprod4' from incompatible pointer
type
test.c:4: note: expected 'const double (*)[4]' but argument is of type 'double
(*)[4]'
test.c:13: warning: passing argument 3 of 'mprod4' from incompatible pointer
type
test.c:4: note: expected 'const double (*)[4]' but argument is of type 'double
(*)[4]'
------------
defining the function as:
--- snip ---
void mprod4(mat4 r, mat4 a, mat4 b)
{
}
------------
OR defining matrices at main as:
--- snip ---
mat4 mr;
const mat4 ma;
const mat4 mb;
------------
OR calling teh function in main as:
--- snip ---
mprod4(mr, (const double(*)[4])ma, (const double(*)[4])mb);
------------
OR even defining mat4 as:
--- snip ---
typedef double mat4[16];
------------
make teh warning go away. Wat is happening here? Am I doing something invalid?
I have attached source code.
Thanks for your attention.
More information about the Gcc-bugs
mailing list