ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33984
be
derefenced
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org
--- Comment #4 from andrew dot stubbs at st dot com 2007-11-01 18:15
---
It gets worse :(
The following example used to be detected by GCC 4.1.1, but is now permitted by
GCC 4.1.2, 4.2.1, 4.2.2, and 4.3-20071026, and hence is a regression.
int
foo (int bar)
try
{
return 0;
}
catch
--- Comment #1 from andrew dot stubbs at st dot com 2007-10-31 16:15
---
This bug appears to be no longer present in GCC 4.2.1.
--
andrew dot stubbs at st dot com changed:
What|Removed |Added
--- Comment #3 from andrew dot stubbs at st dot com 2007-09-28 16:00
---
I'm not a GCC expert, but that patch looks like it will silently change the
behaviour of the compiler when -pedantic is not given.
I would suggest that the first parameter should either be a regular,
non-pedantic
--- Comment #6 from andrew dot stubbs at st dot com 2007-09-28 16:28
---
(In reply to comment #4)
When -pedantic is not given (the default) a pedwarn is an hard error. A
pedwarn
becomes a warning when -permissive is passes (and the code is thus accepted as
an extension, which I
--- Comment #5 from andrew dot stubbs at st dot com 2007-09-17 10:30
---
Subject: Re: New: [SH4] performance regression between
3.4.6 and 4.x
nbkolchin at gmail dot com wrote:
Our target hardware has SH7750 processor running in little endian mode under
RTEMS. Unfortunetaly
--- Comment #2 from andrew dot stubbs at st dot com 2007-06-13 18:00
---
As it happens, I encountered your real problem quite recently. :)
(int)(131) is undefined (C99 standard 6.5.7/4).
This modified version gives the same result both ways:
int main (){
unsigned long long
--- Comment #7 from andrew dot stubbs at st dot com 2007-05-31 09:49
---
See here: http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#197
It would appear that only koenig lookup is done for functions defined after the
template declaration. As the Intel statement says, koenig
--- Comment #10 from andrew dot stubbs at st dot com 2007-05-31 10:57
---
Here's another issue in this area. Is it the same, or a separate bug? This code
is adapted from the example in DR197.
#include stdio.h
struct C1 {};
struct C2 : C1 {
};
C1 c1;
C2 c2;
void f(C1
at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32165
--- Comment #9 from andrew dot stubbs at st dot com 2007-05-30 08:51
---
OK, I see what you are getting at now. The delete is defined (by the code), but
the warning concerns the destructor also.
Anyway, as you say, the warning can be silenced by casting to char*.
--
andrew dot
--- Comment #4 from andrew dot stubbs at st dot com 2007-05-29 10:57
---
Well, obviously I'll let people who really understand the details of this
decide whether it can be solved.
However, on the principle that warnings which one can safely ignore, but cannot
silence, are at best
--- Comment #6 from andrew dot stubbs at st dot com 2007-05-29 11:18
---
It's a cut down example to demonstrate the problem, not real world code.
I do ignore warnings in code that does exactly what I want it to do, provided
that I understand them.
--
http://gcc.gnu.org/bugzilla
stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32080
++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32081
--- Comment #1 from andrew dot stubbs at st dot com 2007-05-25 11:21
---
This problem may also be observed in explicit instantiation:
template class T
void
foo (T) throw (int)
{
}
template
void foo (short) throw (short);
There are also similar issues with declarations of pointers
: deleting void* is undefined sometimes bogus
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st
--- Comment #2 from andrew dot stubbs at st dot com 2007-05-25 16:16
---
I'm confused.
It might be the case that there is a type for which this warning is valid - I
don't know C++ well enough to confirm or deny that - but in *this* example, and
perhaps others like it, the warning
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32066
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32071
--- Comment #2 from andrew dot stubbs at st dot com 2007-05-24 15:27
---
You can create an array of functions. Also prohibited by clause 14.8.2/2.
template class T int f(T[5]);
typedef void (fn)();
int K = ffn(0);
At least it doesn't seem to accept reference types ...
--
andrew
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32053
: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32054
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32056
classes
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla
: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32042
++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32019
--- Comment #1 from andrew dot stubbs at st dot com 2007-05-18 14:54
---
EDG version 3.8 gives the warning:
t.cpp, line 15: warning:
ambiguous class member reference -- type T (declared at line 14)
used in preference to type C::T (declared at line 6)
printf
should match in both contexts
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http
: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31988
--- Comment #2 from andrew dot stubbs at st dot com 2007-05-17 15:34
---
Another example perhaps?
void
foo()
{
try
{
}
catch (void *e)
{
void *e; // invalid
}
}
The C++ standard, clause 3.3.2 paragraph 3, states that catch
exception-declarations may
--- Comment #7 from andrew dot stubbs at st dot com 2007-05-17 16:37
---
Another example that might be of interest if anybody eventually tries to fix
this:
void
foo ()
{
for (int i = 0; int i = 0; i++) ;
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2288
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31952
declared in a condition may be redeclared
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot
--- Comment #6 from andrew dot stubbs at st dot com 2007-01-02 14:04
---
(In reply to comment #5)
Why is this accepts-invalid? Shouldn't it be diagnostic instead? I am
trying to understand what is the expected output here: a warning or a pedantic
error?
Clause 5 paragraph 5 says
static functions
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29148
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29136
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29138
++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29143
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29131
--- Comment #2 from andrew dot stubbs at st dot com 2006-09-13 09:23
---
(In reply to comment #1)
As you've written it, class C doesn't have any non-static members. Struct
C::s
hasn't been declared as a member object of C. const int i is a member of
C::s,
not C, so C() without
--- Comment #6 from andrew dot stubbs at st dot com 2006-09-12 07:44
---
Subject: Re: Incorrectly Accepts double declarations
bangerth at dealii dot org wrote:
No, that code is definitely legal and unobjectionable. Just as having two
extern declarations of the same variable
] ()' not default initialized
Product: gcc
Version: 3.4.3
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: andrew dot stubbs at st dot com
--
What|Removed |Added
Known to fail||3.4.3
Known to work||3.2.2
46 matches
Mail list logo