/* Test for @encode in templates. */ /* { dg-options "-lobjc" } */ /* { dg-do run } */ #include <string.h> #include <stdlib.h> template<typename T> 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<char>(0))) abort (); if (strcmp (@encode(char *), my_encode<char>(1))) abort (); if (strcmp (@encode(const char *), my_encode<char>(2))) abort (); if (strcmp (@encode(int), my_encode<char>(3))) abort (); return 0; }