* [Bug c/47143] warning about const multidimensional array as function parameter
2011-01-01 5:38 [Bug c/47143] New: warning about const multidimensional array as function parameter rogi at linuxmail dot org
@ 2011-01-01 11:25 ` rogi at linuxmail dot org
2011-01-01 12:02 ` jsm28 at gcc dot gnu.org
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: rogi at linuxmail dot org @ 2011-01-01 11:25 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47143
Igor <rogi at linuxmail dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|minor |normal
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c/47143] warning about const multidimensional array as function parameter
2011-01-01 5:38 [Bug c/47143] New: warning about const multidimensional array as function parameter rogi at linuxmail dot org
2011-01-01 11:25 ` [Bug c/47143] " rogi at linuxmail dot org
@ 2011-01-01 12:02 ` jsm28 at gcc dot gnu.org
2011-01-01 13:02 ` rogi at linuxmail dot org
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: jsm28 at gcc dot gnu.org @ 2011-01-01 12:02 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47143
Joseph S. Myers <jsm28 at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
--- Comment #1 from Joseph S. Myers <jsm28 at gcc dot gnu.org> 2011-01-01 12:02:28 UTC ---
Not a bug. The function parameters are of type "pointer to array[4] of const
double" because const on an array type applies to the element type,
recursively, and then the outermost array type, only, of a parameter of array
type decays to a pointer, and the arguments passed are of type "pointer to
array[4] of double" after array-to-pointer decay, and the only case where
qualifiers are permitted to be added in assignment, argument passing etc. is
qualifiers on the immediate pointer target, not those nested more deeply.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c/47143] warning about const multidimensional array as function parameter
2011-01-01 5:38 [Bug c/47143] New: warning about const multidimensional array as function parameter rogi at linuxmail dot org
2011-01-01 11:25 ` [Bug c/47143] " rogi at linuxmail dot org
2011-01-01 12:02 ` jsm28 at gcc dot gnu.org
@ 2011-01-01 13:02 ` rogi at linuxmail dot org
2011-01-01 13:16 ` rogi at linuxmail dot org
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: rogi at linuxmail dot org @ 2011-01-01 13:02 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47143
Igor <rogi at linuxmail dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |UNCONFIRMED
Resolution|INVALID |
--- Comment #2 from Igor <rogi at linuxmail dot org> 2011-01-01 13:02:09 UTC ---
And is it possible to write function definitions that avoid this while
maintaining my precious a[i][j] accesibility inside functions?
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c/47143] warning about const multidimensional array as function parameter
2011-01-01 5:38 [Bug c/47143] New: warning about const multidimensional array as function parameter rogi at linuxmail dot org
` (2 preceding siblings ...)
2011-01-01 13:02 ` rogi at linuxmail dot org
@ 2011-01-01 13:16 ` rogi at linuxmail dot org
2011-01-01 15:06 ` jsm28 at gcc dot gnu.org
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: rogi at linuxmail dot org @ 2011-01-01 13:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47143
--- Comment #3 from Igor <rogi at linuxmail dot org> 2011-01-01 13:16:39 UTC ---
(In reply to comment #1)
> Not a bug. The function parameters are of type "pointer to array[4] of const
> double" because const on an array type applies to the element type,
> recursively, and then the outermost array type, only, of a parameter of array
> type decays to a pointer, and the arguments passed are of type "pointer to
> array[4] of double" after array-to-pointer decay, and the only case where
> qualifiers are permitted to be added in assignment, argument passing etc. is
> qualifiers on the immediate pointer target, not those nested more deeply.
This was somewhat confusing to me. Did you mean that funcion expects:
pointer to array[4] of const doubles
and I am passing
pointer to const array[4] of doubles
instead?
This really seems pretty much teh same to me.
Correct me if I'm wrong please.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c/47143] warning about const multidimensional array as function parameter
2011-01-01 5:38 [Bug c/47143] New: warning about const multidimensional array as function parameter rogi at linuxmail dot org
` (3 preceding siblings ...)
2011-01-01 13:16 ` rogi at linuxmail dot org
@ 2011-01-01 15:06 ` jsm28 at gcc dot gnu.org
2011-01-01 15:42 ` rogi at linuxmail dot org
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: jsm28 at gcc dot gnu.org @ 2011-01-01 15:06 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47143
Joseph S. Myers <jsm28 at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
--- Comment #4 from Joseph S. Myers <jsm28 at gcc dot gnu.org> 2011-01-01 15:06:34 UTC ---
If you want to use const here only on the callee side then you will need to use
casts. I meant what I said: you are passing "pointer to array[4] of double",
with no const in there, to a function expecting "pointer to array[4] of const
double", and this is not a case permitted by C99 6.5.16.1#1. C does not have a
type "pointer to const array[4] of double".
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c/47143] warning about const multidimensional array as function parameter
2011-01-01 5:38 [Bug c/47143] New: warning about const multidimensional array as function parameter rogi at linuxmail dot org
` (4 preceding siblings ...)
2011-01-01 15:06 ` jsm28 at gcc dot gnu.org
@ 2011-01-01 15:42 ` rogi at linuxmail dot org
2011-01-01 16:36 ` jakub at gcc dot gnu.org
2021-08-01 6:41 ` muecker at gwdg dot de
7 siblings, 0 replies; 9+ messages in thread
From: rogi at linuxmail dot org @ 2011-01-01 15:42 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47143
Igor <rogi at linuxmail dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |UNCONFIRMED
Resolution|INVALID |
--- Comment #5 from Igor <rogi at linuxmail dot org> 2011-01-01 15:42:34 UTC ---
(In reply to comment #4)
> If you want to use const here only on the callee side then you will need to use
> casts. I meant what I said: you are passing "pointer to array[4] of double",
> with no const in there, to a function expecting "pointer to array[4] of const
> double", and this is not a case permitted by C99 6.5.16.1#1. C does not have a
> type "pointer to const array[4] of double".
Let me see if I understood.
const double a[4][4]
will become a "pointer to array of consts". So when i call my function passing
a "pointer to array", teh conversion fails since it's only allowed to apply teh
qualifier (const) to teh _pointer type_, which is an array, and not to it's
elements as teh function was expecting.
Correct me if I'm wrong again please and thanks for your patience.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c/47143] warning about const multidimensional array as function parameter
2011-01-01 5:38 [Bug c/47143] New: warning about const multidimensional array as function parameter rogi at linuxmail dot org
` (5 preceding siblings ...)
2011-01-01 15:42 ` rogi at linuxmail dot org
@ 2011-01-01 16:36 ` jakub at gcc dot gnu.org
2021-08-01 6:41 ` muecker at gwdg dot de
7 siblings, 0 replies; 9+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-01-01 16:36 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47143
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
CC| |jakub at gcc dot gnu.org
Resolution| |INVALID
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-01-01 16:36:27 UTC ---
Please stop reopening the PR, there is no bug on the gcc side.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug c/47143] warning about const multidimensional array as function parameter
2011-01-01 5:38 [Bug c/47143] New: warning about const multidimensional array as function parameter rogi at linuxmail dot org
` (6 preceding siblings ...)
2011-01-01 16:36 ` jakub at gcc dot gnu.org
@ 2021-08-01 6:41 ` muecker at gwdg dot de
7 siblings, 0 replies; 9+ messages in thread
From: muecker at gwdg dot de @ 2021-08-01 6:41 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47143
Martin Uecker <muecker at gwdg dot de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |muecker at gwdg dot de
--- Comment #7 from Martin Uecker <muecker at gwdg dot de> ---
This is supported as an extension since GCC 5 and will be supported with the
upcoming C23 standard.
^ permalink raw reply [flat|nested] 9+ messages in thread