aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/obj-c++.dg/encode-9.mm
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/obj-c++.dg/encode-9.mm')
-rw-r--r--gcc-4.9/gcc/testsuite/obj-c++.dg/encode-9.mm26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/obj-c++.dg/encode-9.mm b/gcc-4.9/gcc/testsuite/obj-c++.dg/encode-9.mm
new file mode 100644
index 000000000..6b064dfdc
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/obj-c++.dg/encode-9.mm
@@ -0,0 +1,26 @@
+/* Test than @encode is properly instantiated. */
+/* { dg-options "-lobjc" } */
+/* { dg-do run } */
+
+#include <string.h>
+#include <stdlib.h>
+#include <objc/objc.h>
+
+template<typename T>
+class typeOf {
+public:
+ operator const char*() { return @encode(T); }
+};
+
+int main() {
+ typeOf<int> t;
+ if (strcmp ((const char *)t, @encode(int)))
+ abort();
+
+ typeOf<const char*> c;
+ if (strcmp ((const char *)c, @encode(const char*)))
+ abort();
+
+ return 0;
+}
+