This is the mail archive of the gcc-bugs@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]

[Bug c/47143] New: warning about const multidimensional array as function parameter


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.


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