HomePhabricator

[Sema] Mark GNU compound literal array init as an rvalue.

Description

[Sema] Mark GNU compound literal array init as an rvalue.

Basically the same issue as string init, except it didn't really have
any visible consequences before I removed the implicit lvalue-to-rvalue
conversion from CodeGen.

While I'm here, a couple minor drive-by cleanups: IgnoreParens never
returns a ConstantExpr, and there was a potential crash with string init
involving a ChooseExpr.

The analyzer test change maybe indicates we could simplify the analyzer
code a little with this fix? Apparently a hack was added to support
lvalues in initializers in r315750, but I'm not really familiar with the
relevant code.

Fixes regression reported in the kernel build at
https://bugs.llvm.org/show_bug.cgi?id=40430#c6 .

Differential Revision: https://reviews.llvm.org/D58069

Details

Committed
efriedmaFeb 11 2019, 2:54 PM
Differential Revision
D58069: [Sema] Mark GNU compound literal array init as an rvalue.
Parents
rC353761: [WebAssembly] Make thread-related options consistent
Branches
Unknown
Tags
Unknown