aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/SourceMgr.cpp
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2014-03-06 04:11:10 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2014-03-06 04:11:10 +0000
commit8845dbd7987ce70c4a8fa057742e11454651f509 (patch)
tree68b4962af9d30ab7d4d0c9bf111f4933bd010f12 /llvm/lib/Support/SourceMgr.cpp
parentd1163aa59e293754ed1f6acfad03a7dc4bd3e9c9 (diff)
downloadllvm-8845dbd7987ce70c4a8fa057742e11454651f509.zip
llvm-8845dbd7987ce70c4a8fa057742e11454651f509.tar.gz
llvm-8845dbd7987ce70c4a8fa057742e11454651f509.tar.bz2
Do not derive __gnu_cxx::hash<T> from std::hash<T>.
Instead, define explicit specializations for the basic types listed in the SGI documentation. This solves two problems: 1) Helps avoid silent ODR violations caused by the absence of a user-supplied __gnu_cxx::hash specialization in cases where a std::hash specialization exists (e.g. for std::string). 2) __gnu_cxx::hash semantics are slightly different to those of std::hash (for example, the former may dereference a pointer argument) so it is inappropriate for __gnu_cxx::hash to receive std::hash specializations by default. Differential Revision: http://llvm-reviews.chandlerc.com/D2747 llvm-svn: 203070
Diffstat (limited to 'llvm/lib/Support/SourceMgr.cpp')
0 files changed, 0 insertions, 0 deletions