summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/torture/pr34651.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/torture/pr34651.C')
-rw-r--r--gcc/testsuite/g++.dg/torture/pr34651.C25
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/torture/pr34651.C b/gcc/testsuite/g++.dg/torture/pr34651.C
new file mode 100644
index 000000000..2fce4d7a1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr34651.C
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+
+typedef bool Bool;
+struct CString {
+ CString (const char * =__null);
+ CString & operator += (const CString &);
+};
+struct THotKey {
+ short Key;
+ Bool Control;
+ Bool Shift;
+ Bool Alt;
+};
+THotKey m_HotKey;
+THotKey GetHotKey () { return m_HotKey; }
+void Serialize ()
+{
+ THotKey inHotKey (GetHotKey());
+ CString outCombinaison (inHotKey.Control
+ ? ((inHotKey.Alt || inHotKey.Shift)
+ ? "ctrl+" : "ctrl")
+ : __null);
+ outCombinaison += inHotKey.Alt ? inHotKey.Shift ? "alt+" : "alt" : "";
+ outCombinaison += inHotKey.Shift ? "shift" : "";
+}