| /* { 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}" } } */ |