public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/21614] New: invokation of undefined class'es method is ignored
@ 2005-05-17 6:14 yuri at tsoft dot com
2005-05-17 17:23 ` [Bug c++/21614] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
` (11 more replies)
0 siblings, 12 replies; 13+ messages in thread
From: yuri at tsoft dot com @ 2005-05-17 6:14 UTC (permalink / raw)
To: gcc-bugs
gcc 4.0.0 generates code that has line (**) ignored (nothing is invoked in it's
place).
I am not sure in what kind of relationship does this code stand with C++ standard.
But although structure X::Z is undefined, technically method Y::r can be invoked
safely since X::Z definition isn't required for this.
This code used to compile and work fine -- line (**) was invoked.
Yuri
--begin code--
class X;
class Y;
class X {
public:
struct Z;
typedef void (Z::* R) (unsigned int ss);
void rr (unsigned int ss);
Y* d;
};
class Y {
public:
X::R r;
X::Z* d;
Y* n;
Y(X::R _r, X::Z* _d) : r(_r), d(_d) { }
};
extern void ck();
void X::rr (unsigned int ss) {
for (Y* l = d; l; l = l->n) {
ck();
((l->d)->*(l->r))(ss); // (**) ignored line
ck();
}
}
--end code--
--
Summary: invokation of undefined class'es method is ignored
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: critical
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: yuri at tsoft dot com
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 Regression] invokation of undefined class'es method is ignored
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
@ 2005-05-17 17:23 ` pinskia at gcc dot gnu dot org
2005-05-17 17:38 ` yuri at tsoft dot com
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-05-17 17:23 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-17 17:23 -------
Hmm, I think we get an error mark node but no error.
Confirmed.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Keywords| |wrong-code
Last reconfirmed|0000-00-00 00:00:00 |2005-05-17 17:23:19
date| |
Summary|invokation of undefined |[4.0/4.1 Regression]
|class'es method is ignored |invokation of undefined
| |class'es method is ignored
Target Milestone|--- |4.0.1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 Regression] invokation of undefined class'es method is ignored
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
2005-05-17 17:23 ` [Bug c++/21614] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
@ 2005-05-17 17:38 ` yuri at tsoft dot com
2005-05-17 17:48 ` pinskia at gcc dot gnu dot org
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: yuri at tsoft dot com @ 2005-05-17 17:38 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From yuri at tsoft dot com 2005-05-17 17:38 -------
(In reply to comment #1)
> Hmm, I think we get an error mark node but no error.
Why is this the wrong code? It's easy to execute it.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 Regression] invokation of undefined class'es method is ignored
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
2005-05-17 17:23 ` [Bug c++/21614] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
2005-05-17 17:38 ` yuri at tsoft dot com
@ 2005-05-17 17:48 ` pinskia at gcc dot gnu dot org
2005-05-17 17:52 ` [Bug c++/21614] [4.0 regression] wrong code when calling member function of undefined class bangerth at dealii dot org
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-05-17 17:48 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-17 17:48 -------
(In reply to comment #2)
> (In reply to comment #1)
> > Hmm, I think we get an error mark node but no error.
> Why is this the wrong code? It's easy to execute it.
No the wrong-code keyword says that GCC is emitting wrong code. But what I am saying with the error
mark node is that the front-end should not be creating using error mark node in the internals unless
there was an error emitted.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0 regression] wrong code when calling member function of undefined class
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
` (2 preceding siblings ...)
2005-05-17 17:48 ` pinskia at gcc dot gnu dot org
@ 2005-05-17 17:52 ` bangerth at dealii dot org
2005-05-17 18:04 ` [Bug c++/21614] [4.0/4.1 " pinskia at gcc dot gnu dot org
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: bangerth at dealii dot org @ 2005-05-17 17:52 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From bangerth at dealii dot org 2005-05-17 17:52 -------
Confirmed. Here is a simpler case:
-----------------
extern void findme();
struct Z *p;
void (Z::*m) ();
void rr () {
findme();
(p->*m)();
findme();
}
------------------
if one greps for the two calls of 'findme' in the assembler output, there
is indeed quite some code when using gcc3.4, but nothing with gcc4.0.
That's definitely a regression.
W.
--
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed|2005-05-17 17:23:19 |2005-05-17 17:52:25
date| |
Summary|[4.0/4.1 Regression] |[4.0 regression] wrong code
|invokation of undefined |when calling member function
|class'es method is ignored |of undefined class
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 regression] wrong code when calling member function of undefined class
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
` (3 preceding siblings ...)
2005-05-17 17:52 ` [Bug c++/21614] [4.0 regression] wrong code when calling member function of undefined class bangerth at dealii dot org
@ 2005-05-17 18:04 ` pinskia at gcc dot gnu dot org
2005-05-17 18:05 ` pinskia at gcc dot gnu dot org
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-05-17 18:04 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-17 18:03 -------
in .t02.orginal, we get:
<<< Unknown tree: expr_stmt
<<< error >>> >>>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 regression] wrong code when calling member function of undefined class
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
` (4 preceding siblings ...)
2005-05-17 18:04 ` [Bug c++/21614] [4.0/4.1 " pinskia at gcc dot gnu dot org
@ 2005-05-17 18:05 ` pinskia at gcc dot gnu dot org
2005-05-28 2:00 ` mmitchel at gcc dot gnu dot org
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-05-17 18:05 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-17 18:05 -------
Hmm, this is undefined code IIRC.
Also this has been failing since "3.5.0 20040909".
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 regression] wrong code when calling member function of undefined class
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
` (5 preceding siblings ...)
2005-05-17 18:05 ` pinskia at gcc dot gnu dot org
@ 2005-05-28 2:00 ` mmitchel at gcc dot gnu dot org
2005-05-28 2:21 ` cvs-commit at gcc dot gnu dot org
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-05-28 2:00 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |mark at codesourcery dot com
|dot org |
Status|NEW |ASSIGNED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 regression] wrong code when calling member function of undefined class
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
` (6 preceding siblings ...)
2005-05-28 2:00 ` mmitchel at gcc dot gnu dot org
@ 2005-05-28 2:21 ` cvs-commit at gcc dot gnu dot org
2005-05-28 2:26 ` cvs-commit at gcc dot gnu dot org
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-05-28 2:21 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-05-28 02:20 -------
Subject: Bug 21614
CVSROOT: /cvs/gcc
Module name: gcc
Branch: gcc-4_0-branch
Changes by: mmitchel@gcc.gnu.org 2005-05-28 02:20:13
Modified files:
gcc/cp : ChangeLog typeck.c
gcc/testsuite : ChangeLog
Added files:
gcc/testsuite/g++.dg/expr: ptrmem6.C ptrmem6a.C
Log message:
PR c++/21614
* typeck.c (get_member_function_from_ptrfunc): Do not attempt
conversions to base classes of incomplete types.
PR c++/21614
* g++.dg/expr/ptrmem6.C: New test.
* g++.dg/expr/ptrmem6a.C: Likewise.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.4648.2.47&r2=1.4648.2.48
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/typeck.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.616.2.7&r2=1.616.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.5084.2.203&r2=1.5084.2.204
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/expr/ptrmem6.C.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/expr/ptrmem6a.C.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 regression] wrong code when calling member function of undefined class
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
` (7 preceding siblings ...)
2005-05-28 2:21 ` cvs-commit at gcc dot gnu dot org
@ 2005-05-28 2:26 ` cvs-commit at gcc dot gnu dot org
2005-05-28 2:26 ` mmitchel at gcc dot gnu dot org
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-05-28 2:26 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-05-28 02:21 -------
Subject: Bug 21614
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: mmitchel@gcc.gnu.org 2005-05-28 02:21:30
Modified files:
gcc/cp : ChangeLog typeck.c
gcc/testsuite : ChangeLog
Added files:
gcc/testsuite/g++.dg/expr: ptrmem6.C ptrmem6a.C
Log message:
PR c++/21614
* typeck.c (get_member_function_from_ptrfunc): Do not attempt
conversions to base classes of incomplete types.
PR c++/21614
* g++.dg/expr/ptrmem6.C: New test.
* g++.dg/expr/ptrmem6a.C: Likewise.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4762&r2=1.4763
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/typeck.c.diff?cvsroot=gcc&r1=1.631&r2=1.632
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5547&r2=1.5548
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/expr/ptrmem6.C.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/expr/ptrmem6a.C.diff?cvsroot=gcc&r1=1.1&r2=1.2
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 regression] wrong code when calling member function of undefined class
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
` (8 preceding siblings ...)
2005-05-28 2:26 ` cvs-commit at gcc dot gnu dot org
@ 2005-05-28 2:26 ` mmitchel at gcc dot gnu dot org
2005-05-28 2:49 ` mmitchel at gcc dot gnu dot org
2005-07-06 20:50 ` cvs-commit at gcc dot gnu dot org
11 siblings, 0 replies; 13+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-05-28 2:26 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From mmitchel at gcc dot gnu dot org 2005-05-28 02:26 -------
Fixed in 4.0.1.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 regression] wrong code when calling member function of undefined class
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
` (9 preceding siblings ...)
2005-05-28 2:26 ` mmitchel at gcc dot gnu dot org
@ 2005-05-28 2:49 ` mmitchel at gcc dot gnu dot org
2005-07-06 20:50 ` cvs-commit at gcc dot gnu dot org
11 siblings, 0 replies; 13+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-05-28 2:49 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From mmitchel at gcc dot gnu dot org 2005-05-28 02:30 -------
*** Bug 21762 has been marked as a duplicate of this bug. ***
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |donaldc at csgsolar dot com
| |dot au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/21614] [4.0/4.1 regression] wrong code when calling member function of undefined class
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
` (10 preceding siblings ...)
2005-05-28 2:49 ` mmitchel at gcc dot gnu dot org
@ 2005-07-06 20:50 ` cvs-commit at gcc dot gnu dot org
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-07-06 20:50 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-07-06 20:50 -------
Subject: Bug 21614
CVSROOT: /cvs/gcc
Module name: gcc
Branch: apple-local-200502-branch
Changes by: fjahanian@gcc.gnu.org 2005-07-06 20:50:42
Modified files:
gcc/cp : typeck.c
Added files:
gcc/testsuite/g++.dg/expr: ptrmem6.C ptrmem6a.C
Log message:
Radar 4168863/PR 21614.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/typeck.c.diff?cvsroot=gcc&only_with_tag=apple-local-200502-branch&r1=1.614.2.12&r2=1.614.2.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/expr/ptrmem6.C.diff?cvsroot=gcc&only_with_tag=apple-local-200502-branch&r1=NONE&r2=1.2.8.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/expr/ptrmem6a.C.diff?cvsroot=gcc&only_with_tag=apple-local-200502-branch&r1=NONE&r2=1.2.8.1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21614
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2005-07-06 20:50 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-17 6:14 [Bug c++/21614] New: invokation of undefined class'es method is ignored yuri at tsoft dot com
2005-05-17 17:23 ` [Bug c++/21614] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
2005-05-17 17:38 ` yuri at tsoft dot com
2005-05-17 17:48 ` pinskia at gcc dot gnu dot org
2005-05-17 17:52 ` [Bug c++/21614] [4.0 regression] wrong code when calling member function of undefined class bangerth at dealii dot org
2005-05-17 18:04 ` [Bug c++/21614] [4.0/4.1 " pinskia at gcc dot gnu dot org
2005-05-17 18:05 ` pinskia at gcc dot gnu dot org
2005-05-28 2:00 ` mmitchel at gcc dot gnu dot org
2005-05-28 2:21 ` cvs-commit at gcc dot gnu dot org
2005-05-28 2:26 ` cvs-commit at gcc dot gnu dot org
2005-05-28 2:26 ` mmitchel at gcc dot gnu dot org
2005-05-28 2:49 ` mmitchel at gcc dot gnu dot org
2005-07-06 20:50 ` cvs-commit at gcc dot gnu dot org
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).