diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/method.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/mangle1.C | 3 |
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 |