public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug pending/19514] New: bogus warning about complex "integer" types from typedef
@ 2005-01-18 22:02 gcc-bugzilla at gcc dot gnu dot org
2005-01-18 22:20 ` [Bug pending/19514] " joseph at codesourcery dot com
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: gcc-bugzilla at gcc dot gnu dot org @ 2005-01-18 22:02 UTC (permalink / raw)
To: gcc-bugs
NOTE: Defaulting component because reported component no longer exists
When compiling the following two lines:
typedef double R;
typedef R _Complex C;
with the flags -std=c99 -pedantic, gcc gives the bogus warning:
foo.c:2: warning: ISO C does not support complex integer types
(Code based on the above definitions seems to work, however.)
Environment:
System: Linux ab-initio 2.4.25 #1 SMP Fri Jul 9 17:11:47 EDT 2004 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../configure --prefix=/usr/local/gcc-3.4 --enable-languages=c,c++,f77
How-To-Repeat:
Create a file foo.c with the above two lines, and compile with
gcc -std=c99 -pedantic -c foo.c
------- Additional Comments From stevenj at ab-initio dot mit dot edu 2005-01-18 22:02 -------
Fix:
Simply ignoring the warning seems to work okay.
--
Summary: bogus warning about complex "integer" types from typedef
Product: gcc
Version: 3.4.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: pending
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: stevenj at ab-initio dot mit dot edu
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19514
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug pending/19514] bogus warning about complex "integer" types from typedef
2005-01-18 22:02 [Bug pending/19514] New: bogus warning about complex "integer" types from typedef gcc-bugzilla at gcc dot gnu dot org
@ 2005-01-18 22:20 ` joseph at codesourcery dot com
2005-01-18 22:53 ` pinskia at gcc dot gnu dot org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: joseph at codesourcery dot com @ 2005-01-18 22:20 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From joseph at codesourcery dot com 2005-01-18 22:20 -------
Subject: Re: New: bogus warning about complex "integer"
types from typedef
On Tue, 18 Jan 2005, gcc-bugzilla at gcc dot gnu dot org wrote:
> When compiling the following two lines:
>
> typedef double R;
> typedef R _Complex C;
This is not valid code; you can't use _Complex together with a typedef,
only together with "float", "double" or "long double" in one of the forms
listed in C99.
The misleading diagnostic is a bug, which has been fixed in mainline: you
now get the error
t.c:2: error: two or more data types in declaration specifiers
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19514
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug pending/19514] bogus warning about complex "integer" types from typedef
2005-01-18 22:02 [Bug pending/19514] New: bogus warning about complex "integer" types from typedef gcc-bugzilla at gcc dot gnu dot org
2005-01-18 22:20 ` [Bug pending/19514] " joseph at codesourcery dot com
@ 2005-01-18 22:53 ` pinskia at gcc dot gnu dot org
2005-01-18 22:57 ` stevenj at fftw dot org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-01-18 22:53 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-18 22:52 -------
Invalid based on JSM's comment.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19514
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug pending/19514] bogus warning about complex "integer" types from typedef
2005-01-18 22:02 [Bug pending/19514] New: bogus warning about complex "integer" types from typedef gcc-bugzilla at gcc dot gnu dot org
2005-01-18 22:20 ` [Bug pending/19514] " joseph at codesourcery dot com
2005-01-18 22:53 ` pinskia at gcc dot gnu dot org
@ 2005-01-18 22:57 ` stevenj at fftw dot org
2005-01-18 23:15 ` stevenj at fftw dot org
2005-01-18 23:53 ` joseph at codesourcery dot com
4 siblings, 0 replies; 6+ messages in thread
From: stevenj at fftw dot org @ 2005-01-18 22:57 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From stevenj at fftw dot org 2005-01-18 22:56 -------
Subject: Re: bogus warning about complex "integer" types
from typedef
On Tue, 18 Jan 2005, joseph at codesourcery dot com wrote:
>> typedef double R;
>> typedef R _Complex C;
>
> This is not valid code; you can't use _Complex together with a typedef,
> only together with "float", "double" or "long double" in one of the forms
> listed in C99.
My copy of the C99 draft standard states (sec. 6.7.7):
"A typedef declaration does not introduce a new type, only a
synonym for the type so specified."
According to this, "R complex" should be a synonym for "double complex",
and therefore should be valid code. What justification do you have for
claiming otherwise?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19514
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug pending/19514] bogus warning about complex "integer" types from typedef
2005-01-18 22:02 [Bug pending/19514] New: bogus warning about complex "integer" types from typedef gcc-bugzilla at gcc dot gnu dot org
` (2 preceding siblings ...)
2005-01-18 22:57 ` stevenj at fftw dot org
@ 2005-01-18 23:15 ` stevenj at fftw dot org
2005-01-18 23:53 ` joseph at codesourcery dot com
4 siblings, 0 replies; 6+ messages in thread
From: stevenj at fftw dot org @ 2005-01-18 23:15 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From stevenj at fftw dot org 2005-01-18 23:15 -------
Subject: Re: bogus warning about complex "integer" types
from typedef
Okay, I guess I see what you mean. "double" in "double _Complex" is
arguably not a "type", but rather a type-specifier as defined in 6.7.2,
and the "each list of type-specifiers shall be one of the following sets",
a prescribed list of combinations that does not include typedefs.
What an annoyance; one has to define R via the preprocessor, then, in
order to use consistent floating-point precisions everywhere in a program.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19514
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug pending/19514] bogus warning about complex "integer" types from typedef
2005-01-18 22:02 [Bug pending/19514] New: bogus warning about complex "integer" types from typedef gcc-bugzilla at gcc dot gnu dot org
` (3 preceding siblings ...)
2005-01-18 23:15 ` stevenj at fftw dot org
@ 2005-01-18 23:53 ` joseph at codesourcery dot com
4 siblings, 0 replies; 6+ messages in thread
From: joseph at codesourcery dot com @ 2005-01-18 23:53 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From joseph at codesourcery dot com 2005-01-18 23:52 -------
Subject: Re: bogus warning about complex "integer" types
from typedef
On Tue, 18 Jan 2005, stevenj at fftw dot org wrote:
> Okay, I guess I see what you mean. "double" in "double _Complex" is
> arguably not a "type", but rather a type-specifier as defined in 6.7.2,
> and the "each list of type-specifiers shall be one of the following sets",
> a prescribed list of combinations that does not include typedefs.
Yes, that's my point. "double _Complex" is one valid list of type
specifiers. "typedef name" is another, listed separately - a single type
specifier, not part of any valid combinations.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19514
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-01-18 23:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-01-18 22:02 [Bug pending/19514] New: bogus warning about complex "integer" types from typedef gcc-bugzilla at gcc dot gnu dot org
2005-01-18 22:20 ` [Bug pending/19514] " joseph at codesourcery dot com
2005-01-18 22:53 ` pinskia at gcc dot gnu dot org
2005-01-18 22:57 ` stevenj at fftw dot org
2005-01-18 23:15 ` stevenj at fftw dot org
2005-01-18 23:53 ` joseph at codesourcery dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).