C++: Add support for C++ requires expressions

This commit is contained in:
Jeroen Ketema
2024-10-11 14:21:17 +02:00
parent 24d98eef83
commit 168f7f5d34
16 changed files with 10926 additions and 1324 deletions

View File

@@ -23585,10 +23585,26 @@ ir.cpp:
# 2692| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
# 2692| Type = [IntType] int
# 2692| getVariable().getInitializer(): [Initializer] initializer for y
#-----| getExpr(): [RequiresExpr] requires ...
#-----| getExpr(): [RequiresExpr] requires { ... }
#-----| Type = [BoolType] bool
#-----| Value = [RequiresExpr] 1
#-----| ValueCategory = prvalue
#-----| <params>:
# 2692| getRequirement(0): [GTExpr,SimpleRequirementExpr] ... > ...
# 2692| Type = [BoolType] bool
# 2692| ValueCategory = prvalue
# 2692| getGreaterOperand(): [SizeofTypeOperator] sizeof(int)
# 2692| Type = [LongType] unsigned long
# 2692| Value = [SizeofTypeOperator] 4
# 2692| ValueCategory = prvalue
# 2692| getLesserOperand(): [Literal] 0
# 2692| Type = [IntType] int
# 2692| Value = [Literal] 0
# 2692| ValueCategory = prvalue
# 2692| getLesserOperand().getFullyConverted(): [CStyleCast] (unsigned long)...
# 2692| Conversion = [IntegralConversion] integral conversion
# 2692| Type = [LongType] unsigned long
# 2692| ValueCategory = prvalue
#-----| getExpr().getFullyConverted(): [CStyleCast] (int)...
#-----| Conversion = [IntegralConversion] integral conversion
#-----| Type = [IntType] int