# HG changeset patch # User Shinji KONO # Date 1622553391 -32400 # Node ID ccaec67bcdbb118ad9755d1a2f62ced306024f17 # Parent c7eaafae97e2600019769edb4f82a6f02bf59baa ... diff -r c7eaafae97e2 -r ccaec67bcdbb clang/include/clang/Parse/Parser.h --- a/clang/include/clang/Parse/Parser.h Tue Jun 01 17:58:18 2021 +0900 +++ b/clang/include/clang/Parse/Parser.h Tue Jun 01 22:16:31 2021 +0900 @@ -2070,7 +2070,7 @@ StmtResult ParseGotoStatement(); #ifndef noCbC StmtResult ParseCbCGotoStatement(ParsedAttributesWithRange &Attrs,StmtVector &Stmts); - void ExprFromString(char *src ) ; + void ExprFromString(const char *src ) ; #endif StmtResult ParseContinueStatement(); StmtResult ParseBreakStatement(); diff -r c7eaafae97e2 -r ccaec67bcdbb clang/lib/Parse/ParseCbC.cpp --- a/clang/lib/Parse/ParseCbC.cpp Tue Jun 01 17:58:18 2021 +0900 +++ b/clang/lib/Parse/ParseCbC.cpp Tue Jun 01 22:16:31 2021 +0900 @@ -94,11 +94,11 @@ }; } -void Parser::ExprFromString(char *src ) { +void Parser::ExprFromString(const char *src ) { // Push the ( "string" ) tokens into the token stream. SmallVector Tokens; - Token &Tok; - FormTokenWithChars(Tok, src, tok::unknown); + Token Tok ; + PP.CurLexer->FormTokenWithChars(Tok, src, tok::unknown); auto Toks = std::make_unique(Tokens.size()); std::copy(Tokens.begin() + 1, Tokens.end(), Toks.get()); Toks[Tokens.size() - 1] = Tok; @@ -255,7 +255,7 @@ // jmp_buf env_buf; --> int env_buf[64]; ExprFromString("int env_buf[64];"); // innerRes = CreateDeclStmt(bufII, false, false, 64, DeclSpec::TST_typename, CreateIdentifierInfo("int", Loc)); - nnerRes = ParseCompoundStatementBody(); + innerRes = ParseCompoundStatementBody(); if (innerRes.isUsable()) CompoundStmts.push_back(innerRes.get());