-
Notifications
You must be signed in to change notification settings - Fork 155
Release v2510 #797
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 v2510 #797
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 googletest from gitmodules. Recommended way of using gtest is through FetchContent * Add <sstream> to DOTGraph.cpp, which is missing on FreeBSD
* Mark Hexastore as deprecated * minor
* Fix init-submodules-release.sh * default to submodule update in the helper shell script * Fix pre-commit --------- Co-authored-by: Sriteja Kummita <sriteja.ku@gmail.com>
* IDETabulationProblem child classes * get call, ret, calltoret flowfunc impls * default flow functions * call, ret, calltoret with AliasInfo * Lambda funcs for retflow * PureFlow tests * backup before merge * More Test Files * normal and call flow tests * LLVMAliasSet fix NoAliasImpl * fix + commented out bad code * fixed some NoAliasInfoTabProb code * temp removed broken tests * specific value sets fix * first retflow test * cleanup * fixed NormalFlow01 + ground truth * last tests, seqfaults * good progress, few tests fail * Fix compilation issue after merge * Remove unused-variable warning in release mode for CallGraph.h * tests pass, rebased failed * mionr after rebase * fixed all tests after rebase * Some cleanup * Rename the default problems + add IFDS versions * minor * Some cleanup in ll file generation --------- Co-authored-by: Fabian Schiebel <fabian.schiebel@iem.fraunhofer.de> Co-authored-by: Fabian Schiebel <52407375+fabianbs96@users.noreply.github.com>
* ci: Prepare runner brownout Swift tests are disabled due to dependency on outdated Swift version. * fix: tests on ubuntu 24.04 * fix: update clang-format in pre-commit hook to match clang-format version in CI * pre-commit --------- Co-authored-by: Lucas Briese <lucas.briese@iem.fraunhofer.de> Co-authored-by: Fabian Schiebel <fabian.schiebel@iem.fraunhofer.de>
* Add SVF dependency + make the LLVMBasedAliasAnalysis polymorphic to allow injecting the SVF analysis * Add public interface for SVFPointsToSet * Add SVFPointsToInfo + Fix PointsToInfoBase * Fixes in PointsToInfo + add minimal tests * Add CRTPBase utility * New test + some cleanup * Fix build due to merge * minor * Simplify the SVF alias analyses + make FunctionAliasView more type-safe * minor * Regain precision * Get rid of UB + aim to resolve memory leaks with SVF * Fix SVF memory leak * pre-commit with new clang-format version * Apply review comments * Getting rid of the PSR_BIND_ALIASVIEW macro * fix compilation
* Add more known heap-allocating functions + add singleton-returning functions * Add two more heap allocating functions
* comments to doxygen * some more descriptions * Overhauled README.dox * Added texts + fixed typos * More descriptions and typo fixes * Revert change in LLVM code * Fix existing docs * Some more comments + update Doxyfile.in * Add gh-pages deploy script * pre-commit * Small compiler fix * pre-commit with newer clang version * install Doxygen in CI * test * add token * Remove gh-pages deploy trigger on pull-request * install graphviz in CI to draw pretty class diagrams * update website * Remove gh-pages deploy trigger on pull-request * Apply review comments --------- Co-authored-by: mxHuber <huber.maximilian.leo@gmail.com>
* Base files * Added missing alias elements * tests + normalflow impl * added RAS tests * WIP reworking flow functions * ret and call flow, tests seq fault * fixed seq faults in tests * fixed bugs and unittests * Cleanup + small fixes * pre-commit * Add missing header guards and file headers --------- Co-authored-by: Fabian Schiebel <fabianbs@mail.upb.de>
* Simple proof of concept * Extended POC * add hello-modules example tool + modules for phasar.db and phasar.control_flow * made hello_modules tool work * some meeting changes + rest of files * completed all cppm files * added missing folders * Seperated namespaces + bugfixes * added missing macro + removed internal * Simple proof of concept * Extended POC * add hello-modules example tool + modules for phasar.db and phasar.control_flow * made hello_modules tool work * some meeting changes + rest of files * completed all cppm files * added missing folders * Seperated namespaces + bugfixes * added missing macro + removed internal * Fix compilation in C++17 mode and fix some modules * Add phasar-svf to module phasar.llvm.pointer * Fix cyclic dependency between phasar_llvm and phasar_llvm_ifdside * Update README.md --------- Co-authored-by: Fabian Schiebel <fabian.schiebel@iem.fraunhofer.de> Co-authored-by: Fabian Schiebel <52407375+fabianbs96@users.noreply.github.com>
* Update llvm-hello-world + add examples for load-llvm-ir and build-type-hierarchy with phasar * Add examples on how to build a call-graph * Update CG examples to include the reverse-CG + add example for alias info * Add taint analysis example * Add IDE linear constant analysis example * Build and run example programs in CI * Fixing small isuues * Fix examples path in CI * Install phasar to custom location in CI * Set env for install and examples-build in CI * Next attempt to fix CI * Adding simple example on how to write an IFDS analysis * Improve TaintConfigUtilities to provide API that *returns* affected facts, instead of inserting them into an already-existing set * minor * Small simplification * Add example on how to write an IDE linear constant analysis based on the corresponding Wiki entry * Update readmes * Fix broken compile due to merge * minor restructure in README.md * cleanup readme
* replaced llvm-14 with llvm-15 in relevant files * some changes * more efficient call-graph * String-nbased vtable getter + CG-test with dbg info * minor in CG * 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 * Re-add getVFTableGlobal * 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 * Expose getDILocation() * expose getSrcCodeFromIR for DebugLocation + minor * Remove some unused includes * 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 * Start adding more sophisticated type extraction (WIP) * Handle function calls in getVarTypeFromIR * better fallback handling for getDebugLocation, etc * Better IntraMonoSolver dump * minor * improve intra mono dump * minor * expose getNonPureVirtualVFTEntry as namespace-scope function + fix build with LLVM 14 * Fix RTA resolver * Add missing include * Fix solveIFDSProblem + cherry-pick fix of DIBasedTypeHierarchy::buildTypeGraph * dump functions from debugger * Remove unused-variable warning in release mode for CallGraph.h * minor fix in CHA and RTA resolvers * Some cleanup * Add ome additional robustness to LLVMIRToSrc * Fix AllBottom::compose + make FilteredLLVMAliasSet a bit more robust * Make getAllExitPoints more flexible + minor * Handle atexit() in GlobalCtorsDtorsModel (not only __cxa_atexit()) * minor fix in FilteredLLVMAliasSet::isInReachableAllocationSites * pre-commit * pre-commit * Fix name * Fix new CastInfo for EdgeFunction * Make LLVMProjectIRDB movable and add static function load() that returns an ErrorOr * Add function to find the va-list alloca to reduce code duplication * Remove TODO in ProjectIRDB * Apply review comments * minor --------- Co-authored-by: mxHuber <huber.maximilian.leo@gmail.com> Co-authored-by: Fabian Schiebel <fabianbs@mail.uni-paderborn.de> Co-authored-by: Sriteja Kummita <sriteja.ku@gmail.com>
* replaced llvm-14 with llvm-15 in relevant files * some changes * more efficient call-graph * String-nbased vtable getter + CG-test with dbg info * minor in CG * 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 * Re-add getVFTableGlobal * 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 * Expose getDILocation() * expose getSrcCodeFromIR for DebugLocation + minor * Remove some unused includes * 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 * Start adding more sophisticated type extraction (WIP) * Handle function calls in getVarTypeFromIR * better fallback handling for getDebugLocation, etc * Better IntraMonoSolver dump * minor * improve intra mono dump * minor * expose getNonPureVirtualVFTEntry as namespace-scope function + fix build with LLVM 14 * Fix RTA resolver * Add missing include * Fix solveIFDSProblem + cherry-pick fix of DIBasedTypeHierarchy::buildTypeGraph * Potential fix, needs testing * Look into the right VTable, when resolving a virtual call * pre-commit * some cleanup --------- Co-authored-by: mxHuber <huber.maximilian.leo@gmail.com> Co-authored-by: Fabian Schiebel <fabianbs@mail.uni-paderborn.de>
* Refactor AnalysisPrinter to take a llvm::raw_ostream& in onFinalize() and provide a sensible default for LLVM-based analyses. Fixes missing emit-text-report output in phasar-cli * minor
* Add utility function to aid src-code based unittests * half of xtaint test, stuck on 12 * Fixed all but 09 and 12 * fixed all enabled ext taint tests * reworked test structure * refractor + more tests. Weird errors * debug commit * Fix psr::getDILocation() * std::variant for SrcCodeLocationEntry * bug fixed + ext taint test works * compile tests as dbg + ground truths * Fix Gt for UninitTest_02_SHOULD_LEAK * Add TestingSrcLocation * GLCA nearly done, questions for meeting * taint double free tests fail * Fixed IFDSConstAnalysisTest * fixed tainttest and segfaults + refactoring * Fix AnalysisPrinterTest * Convert AnalysisPrinterTest to src-code-based ground-truth * Start converting InstInterationAnalysis tests * Convert some more IIA test cases * Add more IIA tests * Convert FIIA-test + fix use-after-free in IIA test * HandleTypeState_03 not working * All but three fileio tests work * UninitVarTest fixed all but one * fixed all but 03 of TSAnalysisFile * Fixed all but one test * Fixed UninitTest_21 * Enable modeling of instruction-operands in TestingSrcLocation + fix 20th uninit test * reworked test 06 * cleanup * readded LIBCPP_GTEST_SKIP * fixed use after scope in taint analysis test * Make IDEExtendedTaintAnalysisTest more compact * Convert IIAFlowFact tests +make GLCA test more compact * Refactor rest of IfdsIde tests * Move everything in SrcCodeLocationEntry to psr::unittest + some cleanup * Some cleanup --------- Co-authored-by: Fabian Schiebel <fabian.schiebel@iem.fraunhofer.de> Co-authored-by: Fabian Schiebel <fabianbs@mail.upb.de>
* minor fix in CHA and RTA resolvers * Several small improvements for call-graph resolving * Fix out-of-bounds access in getVarTypeFromIR() * Add address-taken functions caching in base resolver * Some cleanup in resolvers * pre-commit * Fix bug in the overloads of buildLLVMBasedCallGraph() that takes a CallGraphAnalysisType
* moved stripPointerTypes() + debug prints * MetadataKind approach * I think we don't get around using getName() * unittests still fail * bugfix + cleanup * Some cleanup * Implement allocated-types collection in terms of debug info * Fix libdeps * Remove some unneeded includes --------- Co-authored-by: Fabian Schiebel <52407375+fabianbs96@users.noreply.github.com> Co-authored-by: Fabian Schiebel <fabian.schiebel@iem.fraunhofer.de>
* Fix the IterativeIDESolver by allowing to analyze problems that override extend() and combine() * Use the logger in the IterativeIDESolver * Make it possible to solve the IDEFeatureTaintAnalysis with the IterativeIDESolver * Fix errors introduced by merge
* Remove boost from BitVectorSet * Minor deboostifying * Apply review comment on Bit-index-inbounds check + simplify operator<<
* Make phasar compile with gcc (g++-11) and uncover (and fix) two bugs related to json ser/de with LLVMAliasSet and LLVMBasedICFG that were not detected untio now, because of nlohmann's implicit conversions feature * Address review comments * Simplify isLLVMZeroValue according to the discussion in #787
* Add AliasIterator * Add alias() check as optional member to AliasIterator * Integrate AliasIterator into Default[IFDS/IDE]AliasAwareFlowFunctions * Some restructure * Add PointsToIterator and integrate it with SVFBasedPointsToInfo * Integrate reachableAllocationSites with PointsToIterator * Add boilerplate + some comments * Start adding SVFAliasInfo for SVF-DDA(WIP) * Fill missing functions for SVFAliasInfoImpl * minor * Fix FilteredLLVMAliasSet * Fix example * Fix some bugs in aliasiterator and pointstoiterator * minor fix * Remove AliasIterator::alias as it is probably not needed and makes the API more complex and harder to adopt * Add FilteredLLVMAliasIterator * Implement FilteredLLVMAliasSet in terms of FilteredLLVMAliasIterator * Add CachedLLVMAliasIterator and implement FilteredLLVMAliasSet in terms of it * Make AliasIterator more convenient to use by reducing the requirement of typedefs v_t and n_t * Attempt to fix install in CI Apparently, cmake does not like relative paths on the commandline anymore... * Add find_package_message to Config.cmake.in * minor
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.