Hello all, When I compile
``` template <typename T> struct Cls { static const int v = 0; }; template <typename T> int constexpr Cls_v = Cls<T>::v; int func() { return Cls_v<int> + Cls_v<float>; } ``` using `g++ -c main.cpp -o main.o -g`, I see two indistinguishable DIEs in the generated debug info: ``` < 1><0x0000003a> DW_TAG_variable DW_AT_name Cls_v DW_AT_decl_file 0x00000001 DW_AT_decl_line 0x00000007 DW_AT_decl_column 0x0000000f DW_AT_type <0x00000035> DW_AT_const_expr yes(1) DW_AT_location len 0x0009: 0x030000000000000000: DW_OP_addr 0x00000000 < 1><0x0000004d> DW_TAG_variable DW_AT_name Cls_v DW_AT_decl_file 0x00000001 DW_AT_decl_line 0x00000007 DW_AT_decl_column 0x0000000f DW_AT_type <0x00000035> DW_AT_const_expr yes(1) DW_AT_location len 0x0009: 0x030400000000000000: DW_OP_addr 0x00000004 ``` Clang, however, generates DW_TAG_template_type_parameter children for these DIEs too: ``` < 1><0x0000003c> DW_TAG_variable DW_AT_name (indexed string: 0x00000003)Cls_v DW_AT_type <0x00000033> DW_AT_decl_file 0x00000001 /main.cpp DW_AT_decl_line 0x00000007 DW_AT_const_value 0 < 2><0x00000045> DW_TAG_template_type_parameter DW_AT_type <0x0000004c> DW_AT_name (indexed string: 0x00000005)T ``` I was wondering if this is intentional or it’s just forgotten to be generated. Thanks, Nima