summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/tc1/dr20.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/tc1/dr20.C')
-rw-r--r--gcc/testsuite/g++.dg/tc1/dr20.C34
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/tc1/dr20.C b/gcc/testsuite/g++.dg/tc1/dr20.C
new file mode 100644
index 000000000..fe5862129
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tc1/dr20.C
@@ -0,0 +1,34 @@
+// { dg-do run }
+// Origin: Giovanni Bajo <giovannibajo at gcc dot gnu dot org>
+// DR20: Some clarifications needed for 12.8 para 15
+
+extern "C" void printf(const char*, ...);
+extern "C" void abort(void);
+
+int count = 0;
+
+class Thing {
+public:
+ Thing() {
+ }
+ ~Thing() {
+ }
+ Thing(const Thing&)
+ {
+ count += 1;
+ }
+};
+
+Thing f() {
+ Thing t;
+ return t;
+}
+
+int main(void)
+{
+ Thing t2 = f();
+ printf("%d %x\n", count, &t2);
+ if (count != 0)
+ abort();
+ return 0;
+}