summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-08-18 21:25:30 +0000
committerDouglas Gregor <dgregor@apple.com>2010-08-18 21:25:30 +0000
commitfb640869ed14e5e3546fd88807d908258c0d4f9c (patch)
tree36e01865a0351b47668f00eb64cdcd3e13c8456e /clang/test
parentb37af7de47e5470a4d1416b2e08c80450d6125bc (diff)
downloadbcm5719-llvm-fb640869ed14e5e3546fd88807d908258c0d4f9c.tar.gz
bcm5719-llvm-fb640869ed14e5e3546fd88807d908258c0d4f9c.zip
There is no pointer conversion between to similar types (i.e., same
type ignoring cv-qualifiers). These are qualification conversions. Fixes PR7934. llvm-svn: 111428
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/SemaCXX/conversion-function.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/conversion-function.cpp b/clang/test/SemaCXX/conversion-function.cpp
index 73b78f414a5..951cdb3f51a 100644
--- a/clang/test/SemaCXX/conversion-function.cpp
+++ b/clang/test/SemaCXX/conversion-function.cpp
@@ -248,3 +248,25 @@ namespace PR7055 {
Y f2(foo());
}
+
+namespace PR7934 {
+ typedef unsigned char uint8;
+
+ struct MutablePtr {
+ MutablePtr() : ptr(0) {}
+ void *ptr;
+
+ operator void*() { return ptr; }
+
+ private:
+ operator uint8*() { return reinterpret_cast<uint8*>(ptr); }
+ operator const char*() const { return reinterpret_cast<const char*>(ptr); }
+ };
+
+ void fake_memcpy(const void *);
+
+ void use() {
+ MutablePtr ptr;
+ fake_memcpy(ptr);
+ }
+}
OpenPOWER on IntegriCloud