pragma-operators.cpp revision fe6834af25d0809215c9e205c9983dd6d3f968b4
1// RUN: %clang_cc1 -fms-extensions -E %s | FileCheck %s 2 3// Test that we properly expand the C99 _Pragma and Microsoft __pragma 4// into #pragma directives, with newlines where needed. <rdar://problem/8412013> 5 6// CHECK: #line 7// CHECK: #pragma warning(push) 8// CHECK: extern "C" { 9// CHECK: #line 10// CHECK: #pragma warning(push) 11// CHECK: int foo() { return 0; } } 12// CHECK: #line 13// CHECK: #pragma warning(pop) 14#define A(X) extern "C" { __pragma(warning(push)) \ 15 int X() { return 0; } \ 16} 17#define B(X) A(X) 18#pragma warning(push) 19B(foo) 20#pragma warning(pop) 21