4 Commits

Author SHA1 Message Date
Krystian Stasiowski
1595988ee6
Reapply "[Clang][Sema] Earlier type checking for builtin unary operators (#90500)" (#92283)
This patch reapplies #90500, addressing a bug which caused binary
operators with dependent operands to be incorrectly rebuilt by
`TreeTransform`.
2024-05-15 21:52:59 -04:00
Krystian Stasiowski
97e35e0098
Revert "[Clang][Sema] Earlier type checking for builtin unary operators (#90500)" (#92149)
This reverts commit 8019cbbbbc94658d133583f7be6cd0023d30b0f3.
2024-05-14 13:22:01 -04:00
Krystian Stasiowski
8019cbbbbc
[Clang][Sema] Earlier type checking for builtin unary operators (#90500)
Currently, clang postpones all semantic analysis of unary operators with
operands of pointer/pointer to member/array/function type until
instantiation whenever that type is dependent (e.g. `T*` where `T` is a
type template parameter). Consequently, the uninstantiated AST nodes all
have the type `ASTContext::DependentTy` (which, for the purposes of
#90152, is undesirable as that type may be the current instantiation!
(e.g. `*this`))

This patch moves the point at which we perform semantic analysis for
such expression to be prior to instantiation.
2024-05-14 12:28:58 -04:00
Leonard Chan
ad7ac964e5 [Sema/Attribute] Check for noderef attribute
This patch adds the noderef attribute in clang and checks for dereferences of
types that have this attribute. This attribute is currently used by sparse and
would like to be ported to clang.

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

llvm-svn: 348442
2018-12-06 01:05:54 +00:00