[all-commits] [llvm/llvm-project] dedd7b: Added checking for completeness of lvalue in condi...
Aditya-pixel via All-commits
all-commits at lists.llvm.org
Mon Mar 27 11:47:25 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: dedd7b6548f4a37f4f691aa0cd3a709756b7e794
https://github.com/llvm/llvm-project/commit/dedd7b6548f4a37f4f691aa0cd3a709756b7e794
Author: Aditya Singh <f20190478 at goa.bits-pilani.ac.in>
Date: 2023-03-27 (Mon, 27 Mar 2023)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaChecking.cpp
M clang/test/Sema/incomplete-decl.c
Log Message:
-----------
Added checking for completeness of lvalue in conditional operator
Given:
```
struct x y;
int main(void)
{
(void)(1 ? y : y);
}
struct x {int i;};
```
The conditional operator(?:) requires the second and third operands to
be of compatible types. To be compatible, they also need to be
complete (however, both can be void). Therefore, the expected response
from clang after running the above code as a C program should be error
dialogue pointing out that both the types are incomplete hence
incompatible, but the code compiled without any errors.
The patch ensures the completeness in the CheckCondtionalOperand
function present in llvm-project/clang/lib/Sema/SemaChecking.cpp.
Fixes https://github.com/llvm/llvm-project/issues/59718
Differential Revision: https://reviews.llvm.org/D144358
More information about the All-commits
mailing list