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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
/*=============================================================================
Boost.Wave: A Standard compliant C++ preprocessor library
http://www.boost.org/
Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
Software License, Version 1.0. (See accompanying file
LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
// Tests correctness of macro expansion inside #pragma directives
#define PRAGMA_BODY preprocessed pragma body
//R #line 16 "t_2_006.cpp"
//R #pragma some pragma body
#pragma some pragma body
//R #line 19 "t_2_006.cpp"
//R #pragma preprocessed pragma body
#pragma PRAGMA_BODY
//R #line 22 "t_2_006.cpp"
//R #pragma STDC some C99 standard pragma body
#pragma STDC some C99 standard pragma body
//R #line 25 "t_2_006.cpp"
//R #pragma STDC preprocessed pragma body
#pragma STDC PRAGMA_BODY
// also test pragma without a body (allowed per https://eel.is/c++draft/cpp.pragma)
//R #line 30 "t_2_006.cpp"
//R #pragma
//R auto x = 0;
#pragma
auto x = 0;
//H 10: t_2_006.cpp(12): #define
//H 08: t_2_006.cpp(12): PRAGMA_BODY=preprocessed pragma body
//H 10: t_2_006.cpp(16): #pragma
//H 10: t_2_006.cpp(19): #pragma
//H 01: t_2_006.cpp(12): PRAGMA_BODY
//H 02: preprocessed pragma body
//H 03: preprocessed pragma body
//H 10: t_2_006.cpp(22): #pragma
//H 10: t_2_006.cpp(25): #pragma
//H 01: t_2_006.cpp(12): PRAGMA_BODY
//H 02: preprocessed pragma body
//H 03: preprocessed pragma body
//H 10: t_2_006.cpp(30): #pragma
|