History log of /llvm-project-15.0.7/clang/lib/Analysis/CFG.cpp (Results 1 – 25 of 478)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init
# a618d5e0 29-Jun-2022 isuckatcs <[email protected]>

[analyzer] Structured binding to tuple-like types

Introducing support for creating structured binding
to tuple-like types.

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


# 996b092c 17-Jul-2022 isuckatcs <[email protected]>

[analyzer] Lambda capture non-POD type array

This patch introduces a new `ConstructionContext` for
lambda capture. This `ConstructionContext` allows the
analyzer to construct the captured object dir

[analyzer] Lambda capture non-POD type array

This patch introduces a new `ConstructionContext` for
lambda capture. This `ConstructionContext` allows the
analyzer to construct the captured object directly into
it's final region, and makes it possible to capture
non-POD arrays.

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

show more ...


# 8a13326d 17-Jul-2022 isuckatcs <[email protected]>

[analyzer] ArrayInitLoopExpr with array of non-POD type

This patch introduces the evaluation of ArrayInitLoopExpr
in case of structured bindings and implicit copy/move
constructor. The idea is to ca

[analyzer] ArrayInitLoopExpr with array of non-POD type

This patch introduces the evaluation of ArrayInitLoopExpr
in case of structured bindings and implicit copy/move
constructor. The idea is to call the copy constructor for
every element in the array. The parameter of the copy
constructor is also manually selected, as it is not a part
of the CFG.

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

show more ...


# cde1df4c 30-Jun-2022 Prathit Aswar <[email protected]>

Correct -Winfinite-recursion warning on potentially-unevaluated operand

Fixing issue "incorrect -Winfinite-recursion warning on potentially-
unevaluated operand".

We add a dedicated visit function

Correct -Winfinite-recursion warning on potentially-unevaluated operand

Fixing issue "incorrect -Winfinite-recursion warning on potentially-
unevaluated operand".

We add a dedicated visit function (VisitCXXTypeidExpr) for typeid,
instead of using the default (VisitStmt). In this new function we skip
over building the CFG for unevaluated operands of typeid.

Fixes #21668

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

show more ...


Revision tags: llvmorg-14.0.6
# fc6b2281 16-Jun-2022 isuckatcs <[email protected]>

[Static Analyzer][CFG] Introducing the source array in the CFG of DecompositionDecl

For DecompositionDecl, the array, which is being decomposed was not present in the
CFG, which lead to the liveness

[Static Analyzer][CFG] Introducing the source array in the CFG of DecompositionDecl

For DecompositionDecl, the array, which is being decomposed was not present in the
CFG, which lead to the liveness analysis falsely detecting it as a dead symbol.

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

show more ...


Revision tags: llvmorg-14.0.5
# 65b34b78 06-Jun-2022 Nathan Sidwell <[email protected]>

[clang][pr55896]:co_yield/co_await thread-safety

co_await and co_yield are represented by (classes derived from)
CoroutineSuspendExpr. That has a number of child nodes, not all of
which are used fo

[clang][pr55896]:co_yield/co_await thread-safety

co_await and co_yield are represented by (classes derived from)
CoroutineSuspendExpr. That has a number of child nodes, not all of
which are used for code-generation. In particular the operand is
represented multiple times, and, like the problem with co_return
(55406) it must only be emitted in the CFG exactly once. The operand
also appears inside OpaqueValueExprs, but that's ok.

This adds a visitor for SuspendExprs to emit the required children in
the correct order. Note that this CFG is pre-coro xform. We don't
have initial or final suspend points.

Reviewed By: bruno

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

show more ...


# 6b8c6f15 25-May-2022 Nathan Sidwell <[email protected]>

[clang][PR55406] CFG for coroutine

CoreturnStmt needs to keep the operand value distinct from its use in
any return_value call, so that instantiation may rebuild the latter.
But it also needs to kee

[clang][PR55406] CFG for coroutine

CoreturnStmt needs to keep the operand value distinct from its use in
any return_value call, so that instantiation may rebuild the latter.
But it also needs to keep the operand value separate in the case of
calling return_void. Code generation checks the operand value form to
determine whether it is a distincte entity to the promise call. This
adds the same logic to CFG generation.

Reviewed By: bruno

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

show more ...


Revision tags: llvmorg-14.0.4
# d9e6b5df 09-May-2022 Krzysztof Parzyszek <[email protected]>

[clang] Recognize scope of thread local variables in CFGBuilder

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


# 29dff0d4 02-May-2022 Balazs Benics <[email protected]>

[analyzer] Allow CFG dumps in release builds

This is a similar commit to D124442, but for CFG dumps.
The binary size diff remained the same demonstrated in that patch.

This time I'm adding tests fo

[analyzer] Allow CFG dumps in release builds

This is a similar commit to D124442, but for CFG dumps.
The binary size diff remained the same demonstrated in that patch.

This time I'm adding tests for demonstrating that all the dump debug
checkers work - even in regular builds without asserts.

Reviewed By: martong

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

show more ...


Revision tags: llvmorg-14.0.3, llvmorg-14.0.2
# cfb81690 20-Apr-2022 Nathan James <[email protected]>

[clang] Add a raw_ostream operator<< overload for QualType

Under the hood this prints the same as `QualType::getAsString()` but cuts out the middle-man when that string is sent to another raw_ostrea

[clang] Add a raw_ostream operator<< overload for QualType

Under the hood this prints the same as `QualType::getAsString()` but cuts out the middle-man when that string is sent to another raw_ostream.

Also cleaned up all the call sites where this occurs.

Reviewed By: aaron.ballman

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

show more ...


Revision tags: llvmorg-14.0.1
# 5d2ce766 18-Mar-2022 Benjamin Kramer <[email protected]>

Use llvm::append_range instead of push_back loops where applicable. NFCI.


Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2
# 3a604fdb 07-Jan-2022 Nick Desaulniers <[email protected]>

[Clang][CFG] check children statements of asm goto

When performing CFG based analyses, don't forget to check the child
statements of an asm goto, such as the expressions used for
inputs+outputs.

Fi

[Clang][CFG] check children statements of asm goto

When performing CFG based analyses, don't forget to check the child
statements of an asm goto, such as the expressions used for
inputs+outputs.

Fixes: https://github.com/llvm/llvm-project/issues/51024
Fixes: https://github.com/ClangBuiltLinux/linux/issues/1439

Reviewed By: void, jyknight, jyu2, efriedma

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

show more ...


# d677a7cb 02-Jan-2022 Kazu Hirata <[email protected]>

[clang] Remove redundant member initialization (NFC)

Identified with readability-redundant-member-init.


# 2d303e67 25-Dec-2021 Kazu Hirata <[email protected]>

Remove redundant return and continue statements (NFC)

Identified with readability-redundant-control-flow.


Revision tags: llvmorg-13.0.1-rc1
# eb1c7c13 07-Nov-2021 Kazu Hirata <[email protected]>

[AST, Analysis] Use llvm::reverse (NFC)


# c7aaa2ef 26-Oct-2021 Nico Weber <[email protected]>

[clang] Add range accessor for ObjCAtTryStmt catch_stmts and use it

No behavior change.

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


# 04f30795 21-Oct-2021 Nico Weber <[email protected]>

[clang] Implement CFG construction for @try and @catch

@finally is still not implemented.

With this, clang can emit -Wreturn-type warnings for functions containing
@try/@catch (but not yet @finally

[clang] Implement CFG construction for @try and @catch

@finally is still not implemented.

With this, clang can emit -Wreturn-type warnings for functions containing
@try/@catch (but not yet @finally), and -Wunreachable-code also works for those
functions.

The implementation is similar to D36914.

Part of PR46693.

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

show more ...


# 0b7c9add 26-Oct-2021 Nico Weber <[email protected]>

[clang] Make loop in CFGBuilder::VisitCXXTryStmt() more canonical

No behavior change.


# aa42785d 26-Oct-2021 Nico Weber <[email protected]>

[clang] Simplify CFG block printing code a bit

No behavior change.


# d054b31d 26-Oct-2021 Nico Weber <[email protected]>

[clang] Use consistent punctuation at end of Block NULL comment

No behavior change.


# 4bd46501 25-Oct-2021 Kazu Hirata <[email protected]>

Use llvm::any_of and llvm::none_of (NFC)


# c74ab84e 11-Oct-2021 Nico Weber <[email protected]>

[clang] Omit most AttributedStatements from the CFG

`[[clang::fallthrough]]` has meaning for the CFG, but all other
StmtAttrs we currently have don't. So omit them, as AttributedStatements
with chil

[clang] Omit most AttributedStatements from the CFG

`[[clang::fallthrough]]` has meaning for the CFG, but all other
StmtAttrs we currently have don't. So omit them, as AttributedStatements
with children cause several issues and there's no benefit in including
them.

Fixes PR52103 and PR49454. See PR52103 for details.

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

show more ...


# 5ab2a95e 11-Oct-2021 Nico Weber <[email protected]>

[clang] Remove an else-after-return


# 00ca004d 11-Oct-2021 Nico Weber <[email protected]>

[clang] Convert a few loops to for-each


# 144f851f 11-Oct-2021 Nico Weber <[email protected]>

[clang/CFG] Rewrap a line to 80 columns


12345678910>>...20