aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/method.c8
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/mangle1.C3
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 873ccd4..cf03013 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -372,10 +372,16 @@ is_back_referenceable_type (type)
switch (TREE_CODE (type))
{
+ case BOOLEAN_TYPE:
+ if (!flag_do_squangling)
+ /* Even though the mangling of this is just `b', we did
+ historically generate back-references for it. */
+ return 1;
+ /* Fall through. */
+
case INTEGER_TYPE:
case REAL_TYPE:
case VOID_TYPE:
- case BOOLEAN_TYPE:
/* These types have single-character manglings, so there's no
point in generating back-references. */
return 0;
diff --git a/gcc/testsuite/g++.old-deja/g++.other/mangle1.C b/gcc/testsuite/g++.old-deja/g++.other/mangle1.C
index 0ffc5d1..d5b36a7b 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/mangle1.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/mangle1.C
@@ -40,3 +40,6 @@ int f__FRC1AiT0N20RiN25 = 0; // ERROR - name clash
void f(const A2&, int, const A2&, const A2&, const A2&, int, int,
int) { } // ERROR - name clash
int f__FRC1AiT0N20iii = 0; // ERROR - name clash
+
+void f(bool, bool) {} // ERROR - name clash
+int f__FbT0 = 0; // ERROR - name clash