#
51c7338c |
| 29-Jan-2025 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Fix dummy handling for p2280r4 (#124396)
This makes some other problems show up like the fact that we didn't suppress diagnostics during __builtin_constant_p evaluation.
|
Revision tags: llvmorg-21-init |
|
#
e6030d38 |
| 24-Jan-2025 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Use std::allocator calls for Descriptor source (#123900)
... for the dynamic blocks created for operator new calls. This way we get the type of memory allocated right. As a side-ef
[clang][bytecode] Use std::allocator calls for Descriptor source (#123900)
... for the dynamic blocks created for operator new calls. This way we get the type of memory allocated right. As a side-effect, the diagnostics now point to the std::allocator calls, which is an improvement.
show more ...
|
#
d70f54f2 |
| 20-Jan-2025 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Fix reporting failed local constexpr initializers (#123588)
We need to emit the 'initializer of X is not a constant expression' note for local constexpr variables as well.
|
#
1be64c27 |
| 20-Jan-2025 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Fix diagnostic mismatch with current interpreter (#123571)
Don't report dead pointers if we've checking for a potential constant expression.
|
Revision tags: llvmorg-19.1.7 |
|
#
e86b68ff |
| 28-Dec-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Add support for typeid pointers (#121251)
Add it as another kind of pointer, saving both a `Type*` for the result of the typeid() expression as well as one for the type of the type
[clang][bytecode] Add support for typeid pointers (#121251)
Add it as another kind of pointer, saving both a `Type*` for the result of the typeid() expression as well as one for the type of the typeid expression.
show more ...
|
Revision tags: llvmorg-19.1.6 |
|
#
ce158734 |
| 10-Dec-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Allow checking builtin functions... (#119328)
... in checkingPotentialConstantExpression mode. This is what the current interpreter does, yet it doesn't do so for `__builtin_operat
[clang][bytecode] Allow checking builtin functions... (#119328)
... in checkingPotentialConstantExpression mode. This is what the current interpreter does, yet it doesn't do so for `__builtin_operator_new`.
show more ...
|
Revision tags: llvmorg-19.1.5 |
|
#
82ed9c03 |
| 01-Dec-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode][NFC] Remove APValue Result argument where unnecessary (#118199)
This is unneeded in almost all circumstances. We only return an APValue back to clang when the evaluation is finishe
[clang][bytecode][NFC] Remove APValue Result argument where unnecessary (#118199)
This is unneeded in almost all circumstances. We only return an APValue back to clang when the evaluation is finished, and that is always done by an EvalEmitter - which has its own implementation of the Ret instructions.
show more ...
|
#
a9731dff |
| 22-Nov-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode][NFC] Avoid a getSource() call (#117311)
This is only needed when we actually emit a diagnostic, so move the getSource() after the early return.
|
#
95f4aa44 |
| 21-Nov-2024 |
smanna12 <soumi.manna@intel.com> |
[clang][bytecode] Add assert to ensure correct state restoration in CallBI function (#115496)
This commit adds an assert statement to the CallBI function to ensure
that the interpreter state (S.Cur
[clang][bytecode] Add assert to ensure correct state restoration in CallBI function (#115496)
This commit adds an assert statement to the CallBI function to ensure
that the interpreter state (S.Current) is correctly reset to the
previous frame (FrameBefore) after InterpretBuiltin returns true. This
helps catch any potential issues during development and debugging.
show more ...
|
#
d800ea7c |
| 21-Nov-2024 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Adjust MSVC disabled optimization pragmas to be _MSC_VER only (#116704)
Alter the #ifdef values from #110986 and #115292 to use _MSC_VER instead of _WIN32 to stop the pragmas being used on gcc/mingw
Adjust MSVC disabled optimization pragmas to be _MSC_VER only (#116704)
Alter the #ifdef values from #110986 and #115292 to use _MSC_VER instead of _WIN32 to stop the pragmas being used on gcc/mingw builds
Noticed by @mstorsjo
show more ...
|
Revision tags: llvmorg-19.1.4 |
|
#
dec6324c |
| 17-Nov-2024 |
Kazu Hirata <kazu@google.com> |
[AST] Remove unused includes (NFC) (#116549)
Identified with misc-include-cleaner.
|
#
ef2a104c |
| 31-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Start implementing __builtin_bit_cast (#112126)
This is a subset of #68288, with hopefully narrower scope. It does not
support bitcasting to non-integral types yet.
Bitfields are
[clang][bytecode] Start implementing __builtin_bit_cast (#112126)
This is a subset of #68288, with hopefully narrower scope. It does not
support bitcasting to non-integral types yet.
Bitfields are supported, but only if they result in a full byte-sized
final buffer. It does not support casting from null-pointers yet or
casting from indeterminate bits.
The tests are from #68288 and partially from #74775.
The `BitcastBuffer` struct is currently always working in single bits,
but I plan to (try to) optimize this for the common full-byte case.
show more ...
|
#
f0b9a0ba |
| 31-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Diagnose delete with non-virtual dtor (#114373)
... in the base class.
|
#
87b6ec3b |
| 29-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Diagnose placement-new construction to inactive field (#114047)
We can reuse CheckActive() for this.
|
Revision tags: llvmorg-19.1.3 |
|
#
7b88e753 |
| 27-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode][NFC] Make CheckVolatile static (#113785)
|
#
d5b42db0 |
| 27-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode][NFC] Only do CheckConstant checks for global pointers (#113786)
We can check isStatic() early here and save ourselves some work.
|
#
46ad7ff4 |
| 23-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Diagnose non-const initialiers in diagnoseUnknownDecl (#113276)
This is more similar to the diagnostic output of the current interpreter
|
#
12516874 |
| 17-Oct-2024 |
Timm Bäder <tbaeder@redhat.com> |
[clang][bytecode][NFC] Remove a leftover dump call
|
#
8079a2c5 |
| 15-Oct-2024 |
yronglin <yronglin777@gmail.com> |
[clang][bytecode] Diagnose reference to non-constexpr variable of const type in C23 constexpr (#112211)
```cpp
const int V33 = 4;
const int V34 = 0;
const int V35 = 2;
constexpr int V36 = V33
[clang][bytecode] Diagnose reference to non-constexpr variable of const type in C23 constexpr (#112211)
```cpp
const int V33 = 4;
const int V34 = 0;
const int V35 = 2;
constexpr int V36 = V33 / V34;
// expected-error@-1 {{constexpr variable 'V36' must be initialized by a constant expression}}
constexpr int V37 = V33 / V35;
// expected-error@-1 {{constexpr variable 'V37' must be initialized by a constant expression}}
```
---------
Signed-off-by: yronglin <yronglin777@gmail.com>
show more ...
|
Revision tags: llvmorg-19.1.2 |
|
#
f93258e4 |
| 10-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Diagnose class-specific operator delete calls (#111700)
|
#
e637a5c9 |
| 09-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Only allow lossless ptr-to-int casts (#111669)
Only allow those casts if the bitwidth of the two types match.
|
#
fed8695b |
| 09-Oct-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Emit better diagnostic for invalid shufflevector index (#111643)
|
#
d2051919 |
| 04-Oct-2024 |
bd1976bris <bd1976llvm@gmail.com> |
[MSVC] work-around for compile time issue 102513 (#110986)
Disable optimizations when building clang/lib/AST/ByteCode/Interp.cpp
with Microsoft's compiler as it has a bug that causes excessive buil
[MSVC] work-around for compile time issue 102513 (#110986)
Disable optimizations when building clang/lib/AST/ByteCode/Interp.cpp
with Microsoft's compiler as it has a bug that causes excessive build
times. We do this only when NDEBUG is not defined on the assumption that
building without asserts indicates that a user is strongly invested in
runtime performance.
Partially addresses: https://github.com/llvm/llvm-project/issues/102513.
Once the bug is addressed in the Microsoft compiler this can be removed.
Co-authored-by: dyung
show more ...
|
Revision tags: llvmorg-19.1.1 |
|
#
95ce78b7 |
| 29-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Implement fixed-point-to-int casts (#110417)
And some cleanups around overflow handling.
|
#
d9b377d8 |
| 27-Sep-2024 |
Timm Baeder <tbaeder@redhat.com> |
[clang][bytecode] Don't produce a null type when checking new exprs (#110252)
getType() might give us the right type already, so use that instead of
calling getPointeeType() for all CXXNewExprs.
|