public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/14186] New: const volatile is ignored for TYPE_INSTANCE
@ 2012-05-30 22:22 jan.kratochvil at redhat dot com
2012-06-19 20:42 ` [Bug c++/14186] " tromey at redhat dot com
2012-06-20 14:56 ` tromey at redhat dot com
0 siblings, 2 replies; 3+ messages in thread
From: jan.kratochvil at redhat dot com @ 2012-05-30 22:22 UTC (permalink / raw)
To: gdb-prs
http://sourceware.org/bugzilla/show_bug.cgi?id=14186
Bug #: 14186
Summary: const volatile is ignored for TYPE_INSTANCE
Product: gdb
Version: HEAD
Status: NEW
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned@sourceware.org
ReportedBy: jan.kratochvil@redhat.com
Classification: Unclassified
Trailing const or volatile get parsed by they are ignored.
Output $3 should match $2, not $1.
p 'CV::m(int)'
$1 = {void (CV * const, CV::t)} 0x400944 <CV::m(int)>
p 'CV::m(int) const'
$2 = {void (const CV * const, CV::t)} 0x400952 <CV::m(int) const>
p CV::m(int) const
$3 = {void (CV * const, CV::t)} 0x400944 <CV::m(int)>
KFAIL: gdb.cp/cpexprs.exp: p CV::m(int) const (PRMS: gdb/9999)
former c-exp.y line:
exp : exp '(' nonempty_typelist ')' const_or_volatile
or new line:
exp : exp '('
/* This is to save the value of arglist_len
being accumulated by an outer function call. */
{ start_arglist (); }
arglist_final ')' const_or_volatile %prec ARROW
just ignore that 'const_or_volatile'.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/14186] const volatile is ignored for TYPE_INSTANCE
2012-05-30 22:22 [Bug c++/14186] New: const volatile is ignored for TYPE_INSTANCE jan.kratochvil at redhat dot com
@ 2012-06-19 20:42 ` tromey at redhat dot com
2012-06-20 14:56 ` tromey at redhat dot com
1 sibling, 0 replies; 3+ messages in thread
From: tromey at redhat dot com @ 2012-06-19 20:42 UTC (permalink / raw)
To: gdb-prs
http://sourceware.org/bugzilla/show_bug.cgi?id=14186
Tom Tromey <tromey at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |tromey at redhat dot com
--- Comment #1 from Tom Tromey <tromey at redhat dot com> 2012-06-19 20:42:16 UTC ---
I looked into this a bit. I have a partial patch.
It is turning out to be pretty ugly to pass the cv-qualifiers
from the parser down through OP_SCOPE to value_aggregate_elt.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/14186] const volatile is ignored for TYPE_INSTANCE
2012-05-30 22:22 [Bug c++/14186] New: const volatile is ignored for TYPE_INSTANCE jan.kratochvil at redhat dot com
2012-06-19 20:42 ` [Bug c++/14186] " tromey at redhat dot com
@ 2012-06-20 14:56 ` tromey at redhat dot com
1 sibling, 0 replies; 3+ messages in thread
From: tromey at redhat dot com @ 2012-06-20 14:56 UTC (permalink / raw)
To: gdb-prs
http://sourceware.org/bugzilla/show_bug.cgi?id=14186
--- Comment #2 from Tom Tromey <tromey at redhat dot com> 2012-06-20 14:55:38 UTC ---
Created attachment 6461
--> http://sourceware.org/bugzilla/attachment.cgi?id=6461
start of a patch
Here's the start of a patch.
It has some unnecessary stuff in it, since I was hacking around
a bit. But some parts should be ok, like the c-exp.y change.
The TYPE_INSTANCE code seems very suspect to me. The parser production
just uses 'exp' -- but this means all kinds of weird things can be parsed
here. (On further reflection I wish I hadn't allowed this extension...)
Also the code in eval.c does not use cleanups, so it can leak memory on errors.
The fundamental problem I hit is that rank_one_type does not consider
cv-qualifiers. So, even after getting the qualifiers all the way through,
we still get the wrong answer; and I didn't want to try fixing this problem
yet.
The cv-qualifier problem could be hacked around in compare_parameters,
but that seemed too hackish for me.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-06-20 14:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-30 22:22 [Bug c++/14186] New: const volatile is ignored for TYPE_INSTANCE jan.kratochvil at redhat dot com
2012-06-19 20:42 ` [Bug c++/14186] " tromey at redhat dot com
2012-06-20 14:56 ` tromey at redhat 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).