1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -DSTDCPP11 -std=c++11 -verify -fsyntax-only %s 2*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -DSTDGNU11 -std=gnu++11 -verify -fsyntax-only %s 3*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -DSTDGNU11TRI -ftrigraphs -std=gnu++11 -verify -fsyntax-only %s 4*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -DSTDCPP17 -std=c++1z -verify -fsyntax-only %s 5*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -DSTDCPP17TRI -ftrigraphs -std=c++1z -verify -fsyntax-only %s 6*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -DMSCOMPAT -fms-compatibility -std=c++11 -verify -fsyntax-only %s 7*0a6a1f1dSLionel Sambuc foo()8*0a6a1f1dSLionel Sambucvoid foo() { 9*0a6a1f1dSLionel Sambuc #if defined(NOFLAGS) || defined(STDCPP11) || defined(STDGNU11TRI) || \ 10*0a6a1f1dSLionel Sambuc defined(STDCPP17TRI) 11*0a6a1f1dSLionel Sambuc const char c[] = "??/n"; // expected-warning{{trigraph converted to '\' character}} 12*0a6a1f1dSLionel Sambuc #elif defined(STDGNU11) || defined(STDCPP17) || defined(MSCOMPAT) 13*0a6a1f1dSLionel Sambuc const char c[] = "??/n"; // expected-warning{{trigraph ignored}} 14*0a6a1f1dSLionel Sambuc #else 15*0a6a1f1dSLionel Sambuc #error Not handled. 16*0a6a1f1dSLionel Sambuc #endif 17*0a6a1f1dSLionel Sambuc } 18