Commit cbe4c88c by Jonathan Wakely Committed by Jonathan Wakely

mangle.c (find_substitution): Look for abi_tag on class templates.

gcc/cp:
	* mangle.c (find_substitution): Look for abi_tag on class templates.

gcc/testsuite:
	* g++.dg/abi/abi-tag11.C: New.

From-SVN: r217557
parent c7274165
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>
......
......@@ -609,7 +609,7 @@ find_substitution (tree node)
}
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.
......
// { 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) {}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment