A truth assignment to atomic boolean values which satisfy Constraints will be returned if found by the solver.
This gives us more information which can be helpful for debugging or constructing warning messages.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h | ||
---|---|---|
273–278 | I'd suggest to revert these edits. Vertical alignment that is not supported by an autoformatter isn't sustainable. |
clang/include/clang/Analysis/FlowSensitive/Solver.h | ||
---|---|---|
46 | A solution consists of true/false assignments for all variables. Having an Unassigned option seems confusing. I suggest defining only two values in this enum and translating WatchedLiteralsSolver's internal representation to Solution right before returning it, in buildValAssignment. | |
51–58 | Let's document these members. |
clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h | ||
---|---|---|
278 |
clang/include/clang/Analysis/FlowSensitive/Solver.h | ||
---|---|---|
67 | Please use llvm::Optional, we can't use std::optional in LLVM/Clang code yet. |
This change is causing a build failure on the Windows PS4 bot, can you please take a look and revert if you need time to investigate?
https://lab.llvm.org/buildbot/#/builders/216/builds/7026
FAILED: tools/clang/lib/Analysis/FlowSensitive/CMakeFiles/obj.clangAnalysisFlowSensitive.dir/WatchedLiteralsSolver.cpp.obj C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe /nologo /TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GNU_SOURCE -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\lib\Analysis\FlowSensitive -IC:\buildbot-root\llvm-clang-x86_64-sie-win\llvm-project\clang\lib\Analysis\FlowSensitive -IC:\buildbot-root\llvm-clang-x86_64-sie-win\llvm-project\clang\include -Itools\clang\include -Iinclude -IC:\buildbot-root\llvm-clang-x86_64-sie-win\llvm-project\llvm\include /DWIN32 /D_WINDOWS /Zc:inline /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd4324 -w14062 -we4238 /Gw /MD /O2 /Ob2 /EHs-c- /GR- -UNDEBUG -std:c++14 /showIncludes /Fotools\clang\lib\Analysis\FlowSensitive\CMakeFiles\obj.clangAnalysisFlowSensitive.dir\WatchedLiteralsSolver.cpp.obj /Fdtools\clang\lib\Analysis\FlowSensitive\CMakeFiles\obj.clangAnalysisFlowSensitive.dir\ /FS -c C:\buildbot-root\llvm-clang-x86_64-sie-win\llvm-project\clang\lib\Analysis\FlowSensitive\WatchedLiteralsSolver.cpp C:\buildbot-root\llvm-clang-x86_64-sie-win\llvm-project\clang\lib\Analysis\FlowSensitive\WatchedLiteralsSolver.cpp(477): error C2429: language feature 'structured bindings' requires compiler flag '/std:c++17'
I'd suggest to revert these edits. Vertical alignment that is not supported by an autoformatter isn't sustainable.