Here's the fix I'm checking in for the * path.
Jason
commit 16463ef55164d4668d6f1eeb150974452e1dbe58
Author: Jason Merrill ja...@redhat.com
Date: Sat Oct 31 18:10:17 2009 -0400
* rtti.c (tinfo_name): Fix lengths for private case.
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index
On Mon, 2009-10-26 at 09:53 -0400, Jason Merrill wrote:
On 10/26/2009 07:14 AM, Jakub Jelinek wrote:
-/* Generate the mangled representation of TYPE for the typeinfo name.
*/
+/* Generate the mangled representation of TYPE. */
const char *
-mangle_type_string_for_rtti (const tree
On 10/28/2009 07:29 AM, Jerry Quinn wrote:
+ length = strlen (name);
+ if (mark_private)
+ name_string = build_string (length + 1, buf);
+ else
+name_string = build_string (length + 1, name);
These two calls shouldn't be using the same length. I think the +1 in
the old code was
Hi!
Just some random comments:
On Sat, Oct 24, 2009 at 12:10:52AM -0400, Jerry Quinn wrote:
+ if (mark_private)
+{
+ /* Inject '*' at beginning of name to force pointer comparison.
*/
+ char* buf = (char*) XNEWVEC (char, length + 1);
+ buf[0] = '*';
+ memcpy (buf
On 10/26/2009 07:14 AM, Jakub Jelinek wrote:
-/* Generate the mangled representation of TYPE for the typeinfo name.
*/
+/* Generate the mangled representation of TYPE. */
const char *
-mangle_type_string_for_rtti (const tree type)
+mangle_type_string (const tree type)
Why this change?
On Wed, 2009-09-23 at 11:05 -0400, Jason Merrill wrote:
On 09/23/2009 09:22 AM, Jerry Quinn wrote:
I'm not really sure how everything fits together here. Am I missing
something obvious?
I notice that you're missing the fix_string_type that tinfo_name does.
But I'd rather not duplicate
On Tue, 2009-09-22 at 09:40 -0400, Jason Merrill wrote:
On 09/22/2009 07:04 AM, Jerry Quinn wrote:
On Mon, 2009-09-21 at 13:06 -0400, Jason Merrill wrote:
On 09/14/2009 11:54 AM, Jason Merrill wrote:
I think the way to go with this is to revert the compiler bits of
r149964, not mess with
On 09/23/2009 09:22 AM, Jerry Quinn wrote:
I'm not really sure how everything fits together here. Am I missing
something obvious?
I notice that you're missing the fix_string_type that tinfo_name does.
But I'd rather not duplicate the code that creates the STRING_CST;
better to delay the
On Mon, 2009-09-21 at 13:06 -0400, Jason Merrill wrote:
On 09/14/2009 11:54 AM, Jason Merrill wrote:
I think the way to go with this is to revert the compiler bits of
r149964, not mess with mangle.c at all, and insert the initial * if the
typeinfo name won't have TREE_PUBLIC set, since
On 09/22/2009 07:04 AM, Jerry Quinn wrote:
On Mon, 2009-09-21 at 13:06 -0400, Jason Merrill wrote:
On 09/14/2009 11:54 AM, Jason Merrill wrote:
I think the way to go with this is to revert the compiler bits of
r149964, not mess with mangle.c at all, and insert the initial * if the
typeinfo
On 09/14/2009 11:54 AM, Jason Merrill wrote:
I think the way to go with this is to revert the compiler bits of
r149964, not mess with mangle.c at all, and insert the initial * if the
typeinfo name won't have TREE_PUBLIC set, since that's precisely the
property we want to mirror in comparison.
On Mon, 2009-09-21 at 13:06 -0400, Jason Merrill wrote:
On 09/14/2009 11:54 AM, Jason Merrill wrote:
I think the way to go with this is to revert the compiler bits of
r149964, not mess with mangle.c at all, and insert the initial * if the
typeinfo name won't have TREE_PUBLIC set, since
On 09/21/2009 02:43 PM, Jerry Quinn wrote:
Another approach could be to use 2 different names for anonymous
namespaces that should and should not be compared by pointer. I don't
like the speed implications, but it might work.
Any type that involves the anonymous namespace should be compared
On 08/31/2009 12:57 AM, Jerry Quinn wrote:
On Thu, 2009-08-27 at 00:24 -0400, Jason Merrill wrote:
Do you know why r149964 makes a difference?
I understand now. The patch changed the anonymous namespace name to use
get_file_function_name in all cases, where previously we were using the
On Aug 27, 2009, Jason Merrill ja...@redhat.com wrote:
On 08/15/2009 10:12 AM, Jerry Quinn wrote:
Building with --enable-build-with-cxx fails to bootstrap as follows:
x86_64-unknown-linux-gnu/32/libstdc++-v3/libsupc++/eh_alloc.o differs
...
Do you know why r149964 makes a difference?
No
On Thu, 2009-08-27 at 00:24 -0400, Jason Merrill wrote:
On 08/15/2009 10:12 AM, Jerry Quinn wrote:
Building with --enable-build-with-cxx fails to bootstrap as follows:
Comparing stages 2 and 3
warning: gcc/cc1plus-checksum.o differs
warning: gcc/cc1-checksum.o differs
Bootstrap
On 08/15/2009 10:12 AM, Jerry Quinn wrote:
Building with --enable-build-with-cxx fails to bootstrap as follows:
Comparing stages 2 and 3
warning: gcc/cc1plus-checksum.o differs
warning: gcc/cc1-checksum.o differs
Bootstrap comparison failure!
On Fri, 2009-08-21 at 15:25 -0700, Richard Henderson wrote:
On 08/21/2009 02:37 PM, Jerry Quinn wrote:
OK, I've gotten almost this far and can bootstrap (the asterisk is
actually not the very first char and I have to figure that out).
However, in the referenced test case, both typeinfos are
On Thu, 2009-08-20 at 15:22 +0100, Dave Korn wrote:
Your patch puts the asterisk into the namespace identifier decl, so it ends
up in both the rtti NTBS name string, and also in the generated asm name for
the objects. What I think you need to do is use an identifier for the
anonymous
On 08/21/2009 02:37 PM, Jerry Quinn wrote:
OK, I've gotten almost this far and can bootstrap (the asterisk is
actually not the very first char and I have to figure that out).
However, in the referenced test case, both typeinfos are apparently
merged, thus returning the same pointer for their
Jerry Quinn wrote:
On Tue, 2009-08-18 at 08:43 -0700, Richard Henderson wrote:
On 08/17/2009 07:40 PM, Jerry Quinn wrote:
On Mon, 2009-08-17 at 16:16 -0400, Jason Merrill wrote:
I'm not sure why GCC sources would need to mangle function-local
structs, though.
Would it be helpful to reserve a
Jerry Quinn wrote:
On Thu, 2009-08-20 at 11:12 +0100, Dave Korn wrote:
Jerry Quinn wrote:
Apparently my change is too naive, because the assembler doesn't like a
name with '*' in it. Are there any chars that can pass muster with
assemblers but not be a valid namespace identifier?
Don't
On Thu, 2009-08-20 at 11:12 +0100, Dave Korn wrote:
Jerry Quinn wrote:
On Tue, 2009-08-18 at 08:43 -0700, Richard Henderson wrote:
On 08/17/2009 07:40 PM, Jerry Quinn wrote:
On Mon, 2009-08-17 at 16:16 -0400, Jason Merrill wrote:
I'm not sure why GCC sources would need to mangle
On Thu, 2009-08-20 at 14:05 +0100, Dave Korn wrote:
Jerry Quinn wrote:
On Thu, 2009-08-20 at 11:12 +0100, Dave Korn wrote:
Jerry Quinn wrote:
Apparently my change is too naive, because the assembler doesn't like a
name with '*' in it. Are there any chars that can pass muster with
Jerry Quinn wrote:
OK, I'm now confused. How does this dovetail with anonymous
namespaces?
We're talking about typeinfo strings. The namespace is part of the typeinfo
name string (the so-called NTBS name), and it's the random number in the
anonymous namespace name used for these local
Dave Korn wrote:
What I think you need to do is use an identifier for the
anonymous namespace without an asterisk, but prefix the asterisk when
generating the corresponding NTBS name string; then your changes to the name
comparison routines in libsupc++ should work, but the typeinfo name
On Tue, 2009-08-18 at 08:43 -0700, Richard Henderson wrote:
On 08/17/2009 07:40 PM, Jerry Quinn wrote:
On Mon, 2009-08-17 at 16:16 -0400, Jason Merrill wrote:
I'm not sure why GCC sources would need to mangle function-local
structs, though.
Would it be helpful to reserve a leading
On 08/17/2009 07:40 PM, Jerry Quinn wrote:
On Mon, 2009-08-17 at 16:16 -0400, Jason Merrill wrote:
I'm not sure why GCC sources would need to mangle function-local
structs, though.
I'm not sure if the following is relevant, but I found it in
cp/mangle.c:
/* Since we now use strcmp to compare
On 08/18/2009 11:43 AM, Richard Henderson wrote:
Would it be helpful to reserve a leading character (say, *) that means
that strcmp should not apply, but rather pointer identity? Thus a class
foo that is intended to be local, as opposed to forced local via
RTLD_LOCAL, can just use *foo and not
On 08/15/2009 10:12 AM, Jerry Quinn wrote:
Bootstrap comparison failure!
[...]
(write_nested_name): Add a fake anonymous namespace scope if
true.
What I assume is going on here is that use of anonymous namespaces can
break bitwise comparison, because get_file_function_name uses a
On Mon, 2009-08-17 at 16:16 -0400, Jason Merrill wrote:
On 08/15/2009 10:12 AM, Jerry Quinn wrote:
Bootstrap comparison failure!
[...]
(write_nested_name): Add a fake anonymous namespace scope if
true.
What I assume is going on here is that use of anonymous namespaces can
Hi, folks,
Building with --enable-build-with-cxx fails to bootstrap as follows:
Comparing stages 2 and 3
warning: gcc/cc1plus-checksum.o differs
warning: gcc/cc1-checksum.o differs
Bootstrap comparison failure!
x86_64-unknown-linux-gnu/32/libstdc++-v3/libsupc++/eh_alloc.o differs
32 matches
Mail list logo