History log of /llvm-project/clang/lib/AST/ByteCode/Interp.cpp (Results 1 – 25 of 48)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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.


12