summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/torture/pr38705.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/torture/pr38705.C')
-rw-r--r--gcc/testsuite/g++.dg/torture/pr38705.C27
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/torture/pr38705.C b/gcc/testsuite/g++.dg/torture/pr38705.C
new file mode 100644
index 000000000..8058d3a39
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr38705.C
@@ -0,0 +1,27 @@
+// PR c++/38705
+// { dg-do compile }
+
+typedef int T;
+typedef __SIZE_TYPE__ size_t;
+extern "C" void *memcpy (void *, const void *, size_t);
+
+void
+foo (char *p, const int q)
+{
+ memcpy (p, &q, sizeof (int));
+}
+
+struct S
+{
+ T t;
+ int u;
+ int bar () const;
+ template <class T> void foo (const T &x) const {}
+};
+
+int
+S::bar () const
+{
+ foo (u);
+ foo (t);
+}