diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2012-06-08 23:47:12 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2012-06-08 23:47:12 +0000 |
commit | 50e3faaebfdbbc3b0a3f4f401c6e75d4a83ad346 (patch) | |
tree | a0bdcea21a8566d2067eb90ed8e2818cd5a90e92 /include/clang/Frontend/CompilerInvocation.h | |
parent | 092bf67e5ca560d2fc6aa70be1f172b8b3a5ff96 (diff) |
[C++11 Compat] Fix breaking change in C++11 pair copyctor.
While this code is valid C++98, it is not valid C++11. The problem can be
reduced to:
class MDNode;
class DIType {
operator MDNode*() const {return 0;}
};
class WeakVH {
WeakVH(MDNode*) {}
};
int main() {
DIType di;
std::pair<void*, WeakVH> p(std::make_pair((void*)0, di)));
}
This was not detected by any of the bots we have because they either compile
C++98 with libstdc++ (which allows it), or C++11 with libc++ (which incorrectly
allows it). I ran into the problem when compiling with VS 2012 RC.
Thanks to Richard for explaining the issue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158245 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Frontend/CompilerInvocation.h')
0 files changed, 0 insertions, 0 deletions