diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/pascal-strings-1.C')
-rw-r--r-- | gcc/testsuite/g++.dg/pascal-strings-1.C | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/pascal-strings-1.C b/gcc/testsuite/g++.dg/pascal-strings-1.C new file mode 100644 index 00000000000..ca95ee9c10b --- /dev/null +++ b/gcc/testsuite/g++.dg/pascal-strings-1.C @@ -0,0 +1,44 @@ +/* APPLE LOCAL file Pascal strings 2001-07-05 zll */ +/* Positive C++ test cases. */ +/* Origin: Ziemowit Laski <zlaski@apple.com> */ +/* { dg-do run } */ +/* { dg-options "-fpascal-strings" } */ + +typedef __SIZE_TYPE__ size_t; +extern "C" void abort (void); +extern "C" size_t strlen (const char *s); + +const unsigned char *pascalStr1 = "\pHello, World!"; +const unsigned char *concat1 = "\pConcatenated" "string" "\pliteral"; + +const unsigned char msg1[] = "\pHello"; /* ok */ +const unsigned char *msg2 = "\pHello"; /* ok */ +const signed char msg3[] = "\pHello"; /* ok */ +const char msg4[] = "\pHello"; /* ok */ +unsigned char msg5[] = "\pHello"; /* ok */ +signed char msg7[] = "\pHello"; /* ok */ +char msg8[] = "\pHello"; /* ok */ + +int +main (void) +{ + const unsigned char *pascalStr2 = "\pGood-bye!"; + + if (strlen ((const char *)pascalStr1) != 14) + abort (); + if (*pascalStr1 != 13) + abort (); /* the length byte does not include trailing null */ + + if (strlen ((const char *)pascalStr2) != 10) + abort (); + if (*pascalStr2 != 9) + abort (); + + if (strlen ((const char *)concat1) != 26) + abort (); + if (*concat1 != 25) + abort (); + + return 0; +} + |