Index: lib/Lex/Lexer.cpp =================================================================== --- lib/Lex/Lexer.cpp +++ lib/Lex/Lexer.cpp @@ -1761,7 +1761,7 @@ } // If we have a digit separator, continue. - if (C == '\'' && getLangOpts().CPlusPlus14) { + if (C == '\'' && (getLangOpts().CPlusPlus14 || getLangOpts().MicrosoftExt)) { unsigned NextSize; char Next = getCharAndSizeNoWarn(CurPtr + Size, NextSize, getLangOpts()); if (isIdentifierBody(Next)) { Index: test/SemaCXX/digit_separators.c =================================================================== --- /dev/null +++ test/SemaCXX/digit_separators.c @@ -0,0 +1,4 @@ +// RUN: %clang -cc1 -fsyntax-only -verify -fms-compatibility -fms-extensions %s +// expected-no-diagnostics + +int x = 1'000'000 ;