+2014-11-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * mangle.c (find_substitution): Look for abi_tag on class templates.
+
2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
Thomas Schwinge <thomas@codesourcery.com>
Ilya Verbin <ilya.verbin@intel.com>
}
tree tags = NULL_TREE;
- if (OVERLOAD_TYPE_P (node))
+ if (OVERLOAD_TYPE_P (node) || DECL_CLASS_TEMPLATE_P (node))
tags = lookup_attribute ("abi_tag", TYPE_ATTRIBUTES (type));
/* Now check the list of available substitutions for this mangling
operation. */
+2014-11-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * g++.dg/abi/abi-tag11.C: New.
+
2014-11-14 Marek Polacek <polacek@redhat.com>
* c-c++-common/ubsan/overflow-negate-3.c: New test.
--- /dev/null
+// { dg-final { scan-assembler "_Z1fSbB3fooIwSt11char_traitsIwESaIwEES3_" } }
+
+namespace std {
+ template <class T> struct char_traits {};
+ template <class T> struct allocator {};
+ template <class T, class U, class V>
+ struct __attribute ((abi_tag ("foo"))) basic_string { };
+ typedef basic_string<wchar_t,char_traits<wchar_t>,allocator<wchar_t> >
+ wstring;
+}
+
+void f(std::wstring,std::wstring) {}