Differences From Artifact [cd54b476a4]:
- File
bs/cir/instruction.h
— part of check-in
[3cf6ab5249]
at
2021-03-04 21:47:51
on branch trunk
—
- Refactored and simplified the way integer and string constants are handled: we no longer try to resolve them during typechecking, this breaks when parametric types are involved and also it makes no sense, typechecking is about types, not values
- Fixed multiple places where locationIds weren't propagated
- Verifier: variable assignments now verify the destination variable type's refinement conditions
- Fixed a test where the above change detected a bug, kept the bugged version as a new verification failure test
To Artifact [40cf95e8ca]:
- File bs/cir/instruction.h — part of check-in [56ae4179a9] at 2021-09-19 20:18:42 on branch trunk — Implemented "Implies" and "PHOverride" verification-specific CIR instructions (user: achavasse size: 5163) [more...]
| ︙ | |||
61 62 63 64 65 66 67 68 69 70 71 72 73 74 | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | + + + + |
Instruction( Or&& x ) :
m_content( move( x ) )
{}
Instruction( Xor&& x ) :
m_content( move( x ) )
{}
Instruction( Implies&& x ) :
m_content( move( x ) )
{}
Instruction( Shl&& x ) :
m_content( move( x ) )
{}
Instruction( LShr&& x ) :
m_content( move( x ) )
|
| ︙ | |||
149 150 151 152 153 154 155 156 157 158 159 160 161 162 | 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | + + + + |
Instruction( Assert&& x ) :
m_content( move( x ) )
{}
Instruction( Placeholder&& x ) :
m_content( move( x ) )
{}
Instruction( PHOverride&& x ) :
m_content( move( x ) )
{}
using Content = variant
<
monostate,
Call,
|
| ︙ | |||
171 172 173 174 175 176 177 178 179 180 181 182 183 184 | 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 | + + |
Store,
Phi,
Not,
And,
Or,
Xor,
Implies,
Shl,
LShr,
AShr,
Add,
Sub,
Mul,
|
| ︙ | |||
195 196 197 198 199 200 201 | 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 | - + + |
ULE,
SGT,
SGE,
SLT,
SLE,
Assert,
|
| ︙ |