ms_wide_predefined_expr.cpp 555 B

1234567891011121314151617181920212223242526
  1. // RUN: %clang_cc1 %s -fsyntax-only -Wno-unused-value -Wmicrosoft -verify -fms-extensions
  2. // expected-no-diagnostics
  3. // Wide character predefined identifiers
  4. #define _STR2WSTR(str) L##str
  5. #define STR2WSTR(str) _STR2WSTR(str)
  6. void abcdefghi12(void) {
  7. const wchar_t (*ss)[12] = &STR2WSTR(__FUNCTION__);
  8. static int arr[sizeof(STR2WSTR(__FUNCTION__))==12*sizeof(wchar_t) ? 1 : -1];
  9. }
  10. namespace PR13206 {
  11. void foo(const wchar_t *);
  12. template<class T> class A {
  13. public:
  14. void method() {
  15. foo(L__FUNCTION__);
  16. }
  17. };
  18. void bar() {
  19. A<int> x;
  20. x.method();
  21. }
  22. }