/* Test for @encode in templates. */ /* { dg-options "-lobjc" } */ /* { dg-do run } */ #include #include template const char *my_encode(int variant) { const char *result; switch (variant) { case 0: result = @encode(T); break; case 1: result = @encode(T*); break; case 2: result = @encode(const T*); break; default: result = @encode(int); break; } return result; } int main() { if (strcmp (@encode(char), my_encode(0))) abort (); if (strcmp (@encode(char *), my_encode(1))) abort (); if (strcmp (@encode(const char *), my_encode(2))) abort (); if (strcmp (@encode(int), my_encode(3))) abort (); return 0; }