-
Notifications
You must be signed in to change notification settings - Fork 147
Release v2503 #758
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Release v2503 #758
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Remove llvm::Type::getPointerElementType() + llvm::PointerType::getElementType() wherever possible and deprecate everything else; TODO: How to deal with the legacy stuff that got deprecated? * Remove IfdsFieldSensTaintAnalysis * Wrap calls to stripPointer() in DTAResolver into checks for opaque pointers * Move stripPointer into psr::legacy and removed the deprecated attribute from it as we need to call it from DTAResolver where we explicitly check for the opaque-pointer condition. Added an entry to the BreakingChanges about the removed IfdsFieldSensTaintAnalysis * Replace calls to getPointerElementType() by getNonOpaquePointerElementType() --------- Co-authored-by: Martin Mory <[email protected]>
* Update readme * Add example using fetch-content * Improve FetchContent Experience with phasar * Add separate switch for tools build * Control LTO * Minor in Readme * Remove googletest as submodule and fetch it via FetchContent instead, so that users do not clone it multiple times when use recursive cloning
* Do not install phasar's dependencies to the global namespace anymore * fix for in-tree build * out-factor the inclusion of LLVM and clang to a separate cmake file * Make PHASAR_CONFIG_INSTALL_DIR respect the CMAKE_INSTALL_PREFIX, even if that is not set at configure time * Fix in-tree build
* Make PHASAR_DEBUG_LIBDEPS detect issues in assertions from within CI * Fix DI-based TH dependency issue * Add one more CI target for testing library dependencies * bump swift-actions * Fix in-tree build * Fix install with shared libs * Prevent the DEV int-tree build from falling back to debug
* Fix Compose FF to have vectors of FlowFunctionPtrType, which is necessary, since FlowFunctionTy is a virtual interface * clang-format include/phasar/DataFlow/IfdsIde/FlowFunctions.h Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update include/phasar/DataFlow/IfdsIde/FlowFunctions.h Co-authored-by: Fabian Schiebel <[email protected]> * Update include/phasar/DataFlow/IfdsIde/FlowFunctions.h Co-authored-by: Fabian Schiebel <[email protected]> --------- Co-authored-by: Martin Mory <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Fabian Schiebel <[email protected]>
* Fix C++20 build + minor * Update readme
* Make phasar compile and run with LLVM 14 and 15 (still using typed pointers) * Make phasar compile with clang 15 * minor * fix attempt for clang-14 build * another fix attempt --------- Co-authored-by: Martin Mory <[email protected]>
* Add ctor to LLVMBasedICFG that allows injecting a CG resolver * Low-hanging fruits in resolvers * Remove out-commented code + unnecessary includes * Make the docker push pipeline work again
* add vector include to PointsToInfo.h + create use * Add comment
* Split TH and VTable into two interfaces + refactor TH interface * Add vtable unittest back * Add breaking changes * minor fix * Add ctor to LLVMBasedICFG that allows passing in an LLVMVFTableProvider * minor --------- Co-authored-by: Martin Mory <[email protected]>
* Tie the EF semi-ring to the problem + integrate into solver * Incorporate combine and extend into IIA * minor * Fix IIA * apply review comment
* Move Controller to phasar-cli * Simplify AnalysisController * Prevent invalid enum values to be accepted by the CLI parser * Add proper error messages in case of fatal failure * simplify linking * breaking changes * remove controller component from Config.cmake.in
* new data structure * data structure update * data structure update * data structur update * warning fixed * update from call * Sample use * data structure updated and LibCSummary updated * update summary * Data Structure updated * new function summaries * function summaries updated * function summaries updated * function summaries updated * new function summaries * new function summaries * LLVMDataFlowFacts updated and new function summaries * new Function Summaries * new function summaries * Summarie functions finished * lambdaFlow flow function finished * new unit test * corrections for unit test * handle comments in config files * updated pull request * pull request updated * FunctionDataFlowFactSerialization.cpp unfinished * make pr ready for merge --------- Co-authored-by: Fabian Schiebel <[email protected]>
* unresolved ref to F/NToString * compiles * refactored CallGraph::deserialize() * refactored unittests, all fail * all unittests finally pass * code cleanup * refactoring * fixed function with no caller not being serialized * Fix Dependendency Installation (#707) * Do not install phasar's dependencies to the global namespace anymore * fix for in-tree build * out-factor the inclusion of LLVM and clang to a separate cmake file * Make PHASAR_CONFIG_INSTALL_DIR respect the CMAKE_INSTALL_PREFIX, even if that is not set at configure time * Fix in-tree build * backup DIBTH Data * DIBTH serialization code, untested * DIBTHData getDataFromJson Impl * improved de-/serialization impl w/o TypeToVertex * fixed DIBTHData TypeToVertex not compiling * fixed serialization bugs and unittests * DITHS Test fixes, 13 pass, 11 fail * DIBTH Ser Test, 1 failing Test left * GeneralStatisticsAnalysisData impl * LLVMAliasSetData impl * last printAsJson Impls * Final Impls, DIBTH Identifier Impl not working * changes + fixes from meeting * no equality of values DIBTH Test * fixed all bugs, all unittests pass * Fix crash in buildTypeGraph in the presence of typedefs * fixed LLVMAliasSetSerializationTest * Add more aggressive composite type filter * Refactor handling of DI type names * Implicit vertex index * Prioritize type id over type name as the latter may be ambiguous * Adapt DI TH test to identifiers as names * Fix vtable + transitive di th tests * Optimizing deprecation warnings for getAsJson * TypeTrait check current non functioning impl * fixed TypeHierarchySerialization Tests * Optimized deprecation warinings for getAsJson * debug code backup * Fix LLVMBasedTypeHierarchy * added operator<< statistics to printAsJson * Fix GeneralStatistics printAsJson + minor * Add some more deprecations * Fix now failing unittests * Changes from review --------- Co-authored-by: mxHuber <[email protected]>
* Out-source globals model * Mode call-graph construction * small refactor * Cleanup resolver headers * buildCallGraph speedup for non-OTF resolvers * Move isVirtualCall into Resolver + some refactoring * Move EntryFunctionUtils into phasar_llvm_controlflow to avoid circular library dependencies between phasar_llvm_db and phasar_llvm_utils * Add more constness
* fix * fixed formatting
* Pull in the IDESolver++ (aka. IterativeIDESolver) The solver is set-up in JF_N configuration from the paper "Scaling Interprocedural Static Data-Flow Analysis to Large C/C++ Applications: An Experience Report" * Some cleanup based on review * edge fact printing * more cleanup * tracking issue for c++20 * minor cleanup * Add alignment comment * Apply review comments * Remove confusing copyright notes + fix header guards for newly added files
* Make TaintConfigData compatible with C++20 * Compatibility with opaque pointers * Allow setting the LLVM version from higher-level projects * Getting rid of UB in CHAResolver * Better IntraMonoSolver dump * minor * improve intra mono dump * minor * expose getNonPureVirtualVFTEntry as namespace-scope function + fix build with LLVM 14 * Fix solveIFDSProblem --------- Co-authored-by: Fabian Schiebel <[email protected]>
* deploy(conan): +Conan v2 recipe * deploy(conan): fix nlohmann dep * deploy(conan): fix clang should be linked static * deploy(conan): recipe requires v2 * deploy(conan): fix deps recipes * deploy(conan): recipes should use proper user * deploy(conan): fix dyn user / version * deploy(conan): default category for unknown components / linker flags * deploy(conan): add fPIC * deploy(conan): rm legacy package option * deploy(conan): build tools * doc(conan): update readme * clean(conan): minor review * clean(conan): use link instead of copy * clean(conan): fix pre-commit * deploy(conan): fix ci? libclang-cpp.so forced linking to libLLVM.so * Use PHASAR_LLVM_VERSION to refer to the llvm version in the cmake configuration * deploy(conan): fix review --------- Co-authored-by: Fabian Schiebel <[email protected]>
* Expose getDILocation() * expose getSrcCodeFromIR for DebugLocation + minor * Remove some unused includes * Fix AliasInfo * better fallback handling for getDebugLocation, etc * Disable failing test and refer to tracking issue #741 * fix unittests compiler version check --------- Co-authored-by: Sriteja Kummita <[email protected]> Co-authored-by: Sriteja Kummita <[email protected]>
* some changes * minor in CG * minor * Quick-fix LLVMTypeHierarchyTest --------- Co-authored-by: Sriteja Kummita <[email protected]>
* package(docker): update to clang-19 * ci: update github actions * ci: update build to clang-19 * ci: disable clang to stop double linking?
* Add alias set filter * Add test * apply review comments from vulder * Add caching for reachable allocation sites * Bugfix * adding noexcept * Rename Context to AliasQueryInst in IFDSTaintAnalysis
* Add z3 installation to dockerfile * automatic z3 detection * minor cleanup * fix: FindZ3.cmake shouldn't try compile with ASAN * clean: rm z3 auto, not necessary anymore * ci: add arm build for pull requests * ci: arm runner min is 22.04 * ci: disable swift on 24.04-arm * clean: fix pre-commit * test: ignore flaky tests for 24.04+ * minor --------- Co-authored-by: Lucas Briese <[email protected]>
* ci: switch from qemu-arm to arm runner * ci: build dockerimage on each pull request
* replaced llvm-14 with llvm-15 in relevant files * annotation fix + test fix * removed bitcasts and fixed tests * Fix Annotation.cpp + TaintConfigTest * Quick-fix LLVMTypeHierarchyTest * fix one IIA test * Fix StringtestCpp for generalized LCA * first half of tests fixed * fixed first half of tests * fixed all but one test in IDEInstInteractionAnalysisTest * fixed all but two tests * Fix IIAFlowFact equality * fixed some newly failed tests * trade soundness for precision in LLVMAliasSet * ci.yml update * Revert "fixed some newly failed tests" * pre-commit hook * Two Tests + xtaint09 test fix for pipeline * Basic Opaque Pointer Impl, bugged * switching to DebugInfoFinder * re-add the quick-fix for LLVMTypeHierarchy * OpaquePtr type mapping, missing subroutines * Introducing a pass to save ptr types * Revert "Introducing a pass to save ptr types" This reverts commit 2a91b6d. * moving phasar to DIBasedTypeHierarchy * full switch to DIBasedTypeHierarchy + Test fixes * fixed PathTracingTest * dtaresolver deprecated and test fixes * Fixed OTFTest * trimmed trailing whitespace * minor fixes * readded TypeToDIType map for RTAResolver * pre-commit clang-format fix * pre-commit clang-format llvmbasedicfg.cpp * moved RTAResolver to DITypes * implemented review suggestions * Log error if trying to instantiate DTAResolver + minor * Add breaking changes * Also compare gep type in IIA EqualGEPDescriptor * debugging CI * debugging * DITH fix attempt for CI * fix build * Start adding more sophisticated type extraction (WIP) * Handle function calls in getVarTypeFromIR * better fallback handling for getDebugLocation, etc * cleanup getVarTypeFromIR * Add libzstd-dev as apt dependency; otherwise the docker build fails on arm --------- Co-authored-by: mxHuber <[email protected]> Co-authored-by: Fabian Schiebel <[email protected]>
* Start with sparse ICFG * Build sparse CFG (not tested yet) * Integrate Sparse CFG into IDESolver + add test (WIP) * Make sparse IDE work for linear constant analysis * Add taint analysis to SparseIDETest (passes) -- NO SPARSITY!! * minor * Select right opt tool for mem2reg * Introduce PSR_FWD * Integrate sparse ifds taint analysis into phasar-cli * Fix build after merge from dev +relax opt path requirement * Fix opt-tool selection * fallback * Fixed seqfault if find() = end() * AliasAnalysis for fuzzyMayAlias * changed to LLVMAliasInfoRef * some cleanup * minor * Fix build due to merge --------- Co-authored-by: mxHuber <[email protected]>
* Derive PhasarConfig::PhasarVersion() from cmake + some cleanup in Configuration.h * PHASAR_VERSION in Doxyfile
Co-authored-by: Fabian Schiebel <[email protected]>
* Use file sets for headers to improve IDE integration * bump dependencies * Deprecate PHASAR_EXPERIMENTAL_CXX20 + modernize boost finding via find_package(CONFIG) * update gtest version * Somplify headers inclusion + fix boost include for installed phasar * Revisit examples and docs
* Add feature-taint analysis (WIP) * gen from zero in CTR-EF * Add alloca flow * generate at fallback insts * Tie the EF semi-ring to the problem + integrate into solver * Incorporate combine and extend into IIA * minor * Make the FTaint Analysis work on the iia tests (not all pass, though) * Fix IIA * Fix call handling (TODO: Should we strong update pointer args?) * Rename FeatureTaintAnalysis to FeatureInteractionAnalysis * Add taints for args at callsite * Add FTaint Analysis to controller * rename * rename FIIA Domain * rename * Make PathSensitivityManagerMixin more self-contained * Fix top edge facts + further debugging * IMprove alias handling in store ff * Handle memset + add one more rvo test * cs taints do not hold within callees * Fix unionWith in IDEFeatureTaintEdgeFact * some cleanup * fix bugs introduced by merge * Start adding global_5 test * Add print on error to debug the ci * Start fixing CI for FIIA * Add missing ground-truth for FIIA RVO and Global * CI Fix for FIIA GlobalTest_05 * Fix buffer overflow * Update flaky tests * Fixes due to LLVM-15 IR * rename test fixture to IDEFeatureTaintAnalysisTest --------- Co-authored-by: Sriteja Kummita <[email protected]>
* Bump v2503 * Update list of maintainers
sritejakv
approved these changes
Mar 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.