diff options
Diffstat (limited to 'gcc/testsuite/obj-c++.dg/encode-8.mm')
-rw-r--r-- | gcc/testsuite/obj-c++.dg/encode-8.mm | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/obj-c++.dg/encode-8.mm b/gcc/testsuite/obj-c++.dg/encode-8.mm new file mode 100644 index 000000000..9321ceaa3 --- /dev/null +++ b/gcc/testsuite/obj-c++.dg/encode-8.mm @@ -0,0 +1,23 @@ +/* Test if the Objective-C @encode machinery distinguishes between + 'BOOL *' (which should be encoded as '^c') and 'char *' (which + should be encoded as '*'). */ +/* Contributed by Ziemowit Laski <zlaski@apple.com>. */ +/* { dg-do run { target *-*-darwin* } } */ +/* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */ + +#include <string.h> +#include <stdlib.h> +#include <objc/objc.h> + +int main(void) { + const char *BOOL_ptr = @encode(BOOL *); + const char *char_ptr = @encode(char *); + + if(strcmp(BOOL_ptr, "^c")) + abort(); + + if(strcmp(char_ptr, "*")) + abort(); + + return 0; +} |