diff --git a/gcc/testsuite/g++.dg/torture/pr40492.C b/gcc/testsuite/g++.dg/torture/pr40492.C
new file mode 100644
index 000000000000..cab9426d010d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr40492.C
@@ -0,0 +1,26 @@
+typedef unsigned short ushort;
+class QChar {
+public:
+    QChar( const QChar& c );
+    ushort ucs;
+};
+inline QChar::QChar( const QChar& c ) : ucs( c.ucs ) { };
+class QString { };
+class KoAutoFormat {
+public:
+    struct TypographicQuotes     { QChar begin, end; };
+    TypographicQuotes getConfigTypographicDoubleQuotes() const     {
+        return m_typographicDoubleQuotes;
+    }
+    TypographicQuotes m_typographicDoubleQuotes;
+};
+class KoAutoFormatDia {
+    QChar oDoubleBegin, oDoubleEnd;
+    KoAutoFormat * m_docAutoFormat;
+    bool noSignal;
+    void changeAutoformatLanguage(void);
+};
+void KoAutoFormatDia::changeAutoformatLanguage(void)
+{
+  oDoubleEnd= m_docAutoFormat->getConfigTypographicDoubleQuotes().end;
+}