summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-09-29 21:53:04 +0000
committerChris Lattner <sabre@nondot.org>2003-09-29 21:53:04 +0000
commit4e44c0ea31d142d1412e4fa7001a1654ff6afd2e (patch)
treeaa8be4a24c996d7caded0fc4c0600fe7ce55cbf0 /test
parentc66bbd565bd4bc2c5b161229987a30d060442e2b (diff)
downloadllvm-4e44c0ea31d142d1412e4fa7001a1654ff6afd2e.tar.gz
llvm-4e44c0ea31d142d1412e4fa7001a1654ff6afd2e.tar.bz2
llvm-4e44c0ea31d142d1412e4fa7001a1654ff6afd2e.tar.xz
Simplify test, include problem analysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8747 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/C++Frontend/2003-09-29-ArgumentNumberMismatch.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/test/C++Frontend/2003-09-29-ArgumentNumberMismatch.cpp b/test/C++Frontend/2003-09-29-ArgumentNumberMismatch.cpp
index 9e348b6e13..7c4e23f40f 100644
--- a/test/C++Frontend/2003-09-29-ArgumentNumberMismatch.cpp
+++ b/test/C++Frontend/2003-09-29-ArgumentNumberMismatch.cpp
@@ -1,11 +1,15 @@
+// Non-POD classes cannot be passed into a function by component, because their
+// dtors must be run. Instead, pass them in by reference. The C++ front-end
+// was mistakenly "thinking" that 'foo' took a structure by component.
+
struct C {
int A, B;
~C() {}
-
- void operator^(C b) const { }
};
+void foo(C b);
+
void test(C *P) {
- *P ^ *P;
+ foo(*P);
}