The following program:
```objective-c
#import <stdio.h>
typedef signed char BOOL;
typedef signed char TYPEDEF;
int main() {
printf("signed char* encoding: %s\n", @encode(signed char*));
printf("TYPEDEF* encoding: %s\n", @encode(TYPEDEF*));
printf("BOOL* encoding: %s\n", @encode(BOOL*));
return 0;
}
```
Is supposed to output the following on x86_64 ([godbolt Clang 15](https://godbolt.org/z/dYrsheGd9), [Godbolt GCC 13.2](https://godbolt.org/z/zaj3hdqPo)):
```
signed char* encoding: *
TYPEDEF* encoding: *
BOOL* encoding: ^c
```
But since Clang 16, it outputs ([godbolt Clang 18](https://godbolt.org/z/9efxrnf3a)):
```
signed char* encoding: *
TYPEDEF* encoding: *
BOOL* encoding: *
```
---
Clang seemingly has code to support this, see https://github.com/llvm/llvm-project/blob/2bf7ddf06f773277fcfef58a3cd8c32a161ce36a/clang/lib/AST/ASTContext.cpp#L7696-L7704 and https://github.com/llvm/llvm-project/blob/2bf7ddf06f773277fcfef58a3cd8c32a161ce36a/clang/lib/AST/ASTContext.cpp#L8356-L8362, but for some reason these code paths are now no longer correctly triggered?
The following program:
Is supposed to output the following on x86_64 (godbolt Clang 15, Godbolt GCC 13.2):
But since Clang 16, it outputs (godbolt Clang 18):
Clang seemingly has code to support this, see https://github.com/llvm/llvm-project/blob/2bf7ddf06f773277fcfef58a3cd8c32a161ce36a/clang/lib/AST/ASTContext.cpp#L7696-L7704 and https://github.com/llvm/llvm-project/blob/2bf7ddf06f773277fcfef58a3cd8c32a161ce36a/clang/lib/AST/ASTContext.cpp#L8356-L8362, but for some reason these code paths are now no longer correctly triggered?