r219590 - Fixed a problem in r19589.

Richard Smith richard at metafoo.co.uk
Sun Oct 12 16:51:33 PDT 2014


On Sun, Oct 12, 2014 at 2:28 PM, Tyler Nowicki <tyler.nowicki at gmail.com>
wrote:

> Author: tnowicki
> Date: Sun Oct 12 16:28:02 2014
> New Revision: 219590
>
> URL: http://llvm.org/viewvc/llvm-project?rev=219590&view=rev
> Log:
> Fixed a problem in r19589.
>
> Several systems failed to compile the array allocation of the TokenArray.
>
> Modified:
>     cfe/trunk/lib/Parse/ParsePragma.cpp
>
> Modified: cfe/trunk/lib/Parse/ParsePragma.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParsePragma.cpp?rev=219590&r1=219589&r2=219590&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Parse/ParsePragma.cpp (original)
> +++ cfe/trunk/lib/Parse/ParsePragma.cpp Sun Oct 12 16:28:02 2014
> @@ -1877,8 +1877,8 @@ static bool ParseLoopHintValue(Preproces
>    EOFTok.setLocation(Tok.getLocation());
>    ValueList.push_back(EOFTok); // Terminates expression for parsing.
>
> -  Token *TokenArray =
> -      new (PP.getPreprocessorAllocator()) Token[ValueList.size()];
> +  Token *TokenArray = (Token *)PP.getPreprocessorAllocator().Allocate(
> +      ValueList.size() * sizeof(Token), llvm::alignOf<Token>());
>

You should placement-new an array of Tokens here, rather than assuming that
they don't need construction.


>    std::copy(ValueList.begin(), ValueList.end(), TokenArray);
>    Info.Toks = TokenArray;
>    Info.TokSize = ValueList.size();
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141012/c2810536/attachment.html>


More information about the cfe-commits mailing list