diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2018-08-01 06:06:16 +0000 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2018-08-01 06:06:16 +0000 |
commit | 4aaf1dca0807f2e7d2c4c2847a7b703dfa058329 (patch) | |
tree | 340bcf0729bc650601ff2de6a384bba96fe42f85 /llvm/lib/Transforms/Utils/InlineFunction.cpp | |
parent | b1dfad060193bb0274fff39e1cba5d5ffa807dd2 (diff) | |
download | llvm-4aaf1dca0807f2e7d2c4c2847a7b703dfa058329.zip llvm-4aaf1dca0807f2e7d2c4c2847a7b703dfa058329.tar.gz llvm-4aaf1dca0807f2e7d2c4c2847a7b703dfa058329.tar.bz2 |
[AST] CastExpr: BasePathSize is not large enough.
Summary:
rC337815 / D49508 had to cannibalize one bit of `CastExprBitfields::BasePathSize` in order to squeeze `PartOfExplicitCast` boolean.
That reduced the maximal value of `PartOfExplicitCast` from 9 bits (~512) down to 8 bits (~256).
Apparently, that mattered. Too bad there weren't any tests.
It caused [[ https://bugs.llvm.org/show_bug.cgi?id=38356 | PR38356 ]].
So we need to increase `PartOfExplicitCast` back at least to 9 bits, or a bit more.
For obvious reasons, we can't do that in `CastExprBitfields` - that would blow up the size of every `Expr`.
So we need to either just add a variable into the `CastExpr` (as done here),
or use `llvm::TrailingObjects`. The latter does not seem to be straight-forward.
Perhaps, that needs to be done not for the `CastExpr` itself, but for all of it's `final` children.
Reviewers: rjmccall, rsmith, erichkeane
Reviewed By: rjmccall
Subscribers: bricci, hans, cfe-commits, waddlesplash
Differential Revision: https://reviews.llvm.org/D50050
llvm-svn: 338489
Diffstat (limited to 'llvm/lib/Transforms/Utils/InlineFunction.cpp')
0 files changed, 0 insertions, 0 deletions