| /* Test if the Objective-C @encode machinery distinguishes between |
| 'BOOL *' (which should be encoded as a pointer to BOOL) and 'char *' (which |
| should be encoded as '*'). This is somewhat tricky wrt the NeXT runtime, |
| where we have 'typedef char BOOL'. */ |
| /* Contributed by Ziemowit Laski <zlaski@apple.com>. */ |
| /* { dg-do run } */ |
| #include <string.h> |
| #include <stdlib.h> |
| #include <objc/objc.h> |
| |
| int main(void) { |
| const char *BOOL_ptr = @encode(BOOL *); |
| const char *BOOL_ = @encode(BOOL); |
| const char *char_ptr = @encode(char *); |
| |
| if(*BOOL_ptr != '^' || strcmp(BOOL_ptr + 1, BOOL_)) |
| abort(); |
| |
| if(strcmp(char_ptr, "*")) |
| abort(); |
| |
| return 0; |
| } |