summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/torture/pr34651.C
blob: 2fce4d7a1af76be80d9d86c17e6d410202ed3799 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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" : "";
}