1 // Copyright (C) 2017-2018 Free Software Foundation, Inc. 2 // 3 // This file is part of the GNU ISO C++ Library. This library is free 4 // software; you can redistribute it and/or modify it under the 5 // terms of the GNU General Public License as published by the 6 // Free Software Foundation; either version 3, or (at your option) 7 // any later version. 8 9 // This library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 14 // You should have received a copy of the GNU General Public License along 15 // with this library; see the file COPYING3. If not see 16 // <http://www.gnu.org/licenses/>. 17 18 // { dg-do compile } 19 20 // Define macros for some common variables names that we must not use for 21 // naming variables, parameters etc. in the library. 22 #define tmp ( 23 #define A ( 24 #define B ( 25 #define C ( 26 #define D ( 27 #define E ( 28 #define F ( 29 #define G ( 30 #define H ( 31 #define I ( 32 #define J ( 33 #define K ( 34 #define L ( 35 #define M ( 36 #define N ( 37 #define O ( 38 #define P ( 39 #define Q ( 40 #define R ( 41 #define S ( 42 #define T ( 43 #define U ( 44 #define V ( 45 #define W ( 46 #define X ( 47 #define Y ( 48 #define Z ( 49 #if __cplusplus >= 201103L 50 // <random> defines member functions called a() and b() 51 #else 52 #define a ( 53 #define b ( 54 #endif 55 // <queue> and <stack> defined data members called c 56 #define d ( 57 #define e ( 58 #define f ( 59 #define g ( 60 #if __cplusplus >= 201402L 61 // <chrono> defines operator ""h in C++14 62 // <complex> defines operator ""i in C++14 63 #else 64 #define h ( 65 #define i ( 66 #endif 67 #define j ( 68 #if __cplusplus >= 201103L 69 // <random> defines member functions called k() 70 #else 71 #define k ( 72 #endif 73 #define l ( 74 #if __cplusplus >= 201103L 75 // <random> defines member functions called m() and n() 76 #else 77 #define m ( 78 #define n ( 79 #endif 80 #define o ( 81 #if __cplusplus >= 201103L 82 // <random> defines member functions called p() 83 #else 84 #define p ( 85 #endif 86 #define q ( 87 #define r ( 88 #if __cplusplus >= 201103L 89 // <random> defines member functions called s() and t() 90 // <chrono> and <string> define operator ""s in C++14 91 #else 92 #define s ( 93 #define t ( 94 #endif 95 #define u ( 96 #define v ( 97 #define w ( 98 #define x ( 99 #define y ( 100 #define z ( 101 102 #ifdef _AIX 103 // See https://gcc.gnu.org/ml/libstdc++/2017-03/msg00015.html 104 #undef f 105 #undef r 106 #undef x 107 #undef y 108 #endif 109 110 #ifdef __hpux__ 111 #undef d 112 #undef r 113 #endif 114 115 #if defined (__linux__) && defined (__sparc__) 116 #undef y 117 #endif 118 119 #include <bits/stdc++.h> 120