aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/obj-c++.dg/encode-2.mm
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/obj-c++.dg/encode-2.mm')
-rw-r--r--gcc-4.9/gcc/testsuite/obj-c++.dg/encode-2.mm28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/obj-c++.dg/encode-2.mm b/gcc-4.9/gcc/testsuite/obj-c++.dg/encode-2.mm
new file mode 100644
index 000000000..157bb5267
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/obj-c++.dg/encode-2.mm
@@ -0,0 +1,28 @@
+/* { dg-do assemble } */
+/* { dg-options "-save-temps" } */
+
+template <class T>
+struct Vec {
+ T x, y;
+ int z;
+};
+
+typedef struct {
+ Vec<double> dvec;
+ Vec<float> fvec;
+ float fscalar;
+ double dscalar;
+ Vec<signed char> chVec;
+ int iscalar;
+} anonymous;
+
+Vec<double> dd;
+
+const char *enc = @encode(Vec<float>);
+const char *enc2 = @encode(Vec<double>);
+const char *enc3 = @encode(anonymous);
+
+/* { dg-final { scan-assembler "{Vec<float>=ffi}" } } */
+/* { dg-final { scan-assembler "{Vec<double>=ddi}" } } */
+/* { dg-final { scan-file "encode-2.o" "{?={Vec<double>=ddi}{Vec<float>=ffi}fd{Vec<signed char>=cci}i}" } }
+/* { dg-final cleanup-saved-temps } */