// Copyright (C) 2017-2018 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 3, or (at your option) // any later version. // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License along // with this library; see the file COPYING3. If not see // . // { dg-do compile } // Define macros for some common variables names that we must not use for // naming variables, parameters etc. in the library. #define tmp ( #define A ( #define B ( #define C ( #define D ( #define E ( #define F ( #define G ( #define H ( #define I ( #define J ( #define K ( #define L ( #define M ( #define N ( #define O ( #define P ( #define Q ( #define R ( #define S ( #define T ( #define U ( #define V ( #define W ( #define X ( #define Y ( #define Z ( #if __cplusplus >= 201103L // defines member functions called a() and b() #else #define a ( #define b ( #endif // and defined data members called c #define d ( #define e ( #define f ( #define g ( #if __cplusplus >= 201402L // defines operator ""h in C++14 // defines operator ""i in C++14 #else #define h ( #define i ( #endif #define j ( #if __cplusplus >= 201103L // defines member functions called k() #else #define k ( #endif #define l ( #if __cplusplus >= 201103L // defines member functions called m() and n() #else #define m ( #define n ( #endif #define o ( #if __cplusplus >= 201103L // defines member functions called p() #else #define p ( #endif #define q ( #define r ( #if __cplusplus >= 201103L // defines member functions called s() and t() // and define operator ""s in C++14 #else #define s ( #define t ( #endif #define u ( #define v ( #define w ( #define x ( #define y ( #define z ( #ifdef _AIX // See https://gcc.gnu.org/ml/libstdc++/2017-03/msg00015.html #undef f #undef r #undef x #undef y #endif #ifdef __hpux__ #undef d #undef r #endif #if defined (__linux__) && defined (__sparc__) #undef y #endif #include