Cabal-version: 2.2 Name: crucible-llvm Version: 0.8.0.0 Author: Galois Inc. Copyright: (c) Galois, Inc 2014-2022 Maintainer: rscott@galois.com, kquick@galois.com, langston@galois.com License: BSD-3-Clause License-file: LICENSE Build-type: Simple Category: Language Synopsis: Support for translating and executing LLVM code in Crucible Description: Library providing LLVM-specific extensions to the crucible core library for Crucible-based simulation and verification of LLVM-compiled applications. extra-doc-files: CHANGELOG.md, README.md source-repository head type: git location: https://github.com/GaloisInc/crucible subdir: crucible-llvm common bldflags ghc-options: -Wall -Werror=incomplete-patterns -Werror=missing-methods -Werror=overlapping-patterns -Wpartial-fields -Wincomplete-uni-patterns ghc-prof-options: -O2 -fprof-auto-exported default-language: Haskell2010 common warns -- Specifying -Wall and -Werror can cause the project to fail to build on -- newer versions of GHC simply due to new warnings being added to -Wall. To -- prevent this from happening we manually list which warnings should be -- considered errors. We also list some warnings that are not in -Wall, though -- try to avoid "opinionated" warnings (though this judgement is clearly -- subjective). -- -- Warnings are grouped by the GHC version that introduced them, and then -- alphabetically. -- -- A list of warnings and the GHC version in which they were introduced is -- available here: -- https://ghc.gitlab.haskell.org/ghc/doc/users_guide/using-warnings.html -- Since GHC 9.6 or earlier: ghc-options: -Wall -Werror=ambiguous-fields -Werror=compat-unqualified-imports -Werror=deferred-type-errors -Werror=deprecated-flags -Werror=deprecations -Werror=deriving-defaults -Werror=deriving-typeable -Werror=dodgy-foreign-imports -Werror=duplicate-exports -Werror=empty-enumerations -Werror=gadt-mono-local-binds -Werror=identities -Werror=inaccessible-code -Werror=incomplete-patterns -Werror=incomplete-record-updates -Werror=incomplete-uni-patterns -Werror=inline-rule-shadowing -Werror=misplaced-pragmas -Werror=missed-extra-shared-lib -Werror=missing-exported-signatures -Werror=missing-fields -Werror=missing-home-modules -Werror=missing-methods -Werror=missing-pattern-synonym-signatures -Werror=missing-signatures -Werror=name-shadowing -Werror=noncanonical-monad-instances -Werror=noncanonical-monoid-instances -Werror=operator-whitespace -Werror=operator-whitespace-ext-conflict -Werror=orphans -Werror=overflowed-literals -Werror=overlapping-patterns -Werror=partial-fields -Werror=partial-type-signatures -Werror=redundant-bang-patterns -Werror=redundant-record-wildcards -Werror=redundant-strictness-flags -Werror=simplifiable-class-constraints -Werror=star-binder -Werror=star-is-type -Werror=tabs -Werror=type-defaults -Werror=typed-holes -Werror=type-equality-out-of-scope -Werror=type-equality-requires-operators -Werror=unicode-bidirectional-format-characters -Werror=unrecognised-pragmas -Werror=unrecognised-warning-flags -Werror=unsupported-calling-conventions -Werror=unsupported-llvm-version -Werror=unused-do-bind -Werror=unused-imports -Werror=unused-record-wildcards -Werror=warnings-deprecations -Werror=wrong-do-bind if impl(ghc < 9.8) ghc-options: -Werror=forall-identifier if impl(ghc >= 9.8) ghc-options: -Werror=incomplete-export-warnings -Werror=inconsistent-flags if impl(ghc >= 9.10) ghc-options: -Werror=badly-staged-types -Werror=data-kinds-tc -Werror=deprecated-type-abstractions -Werror=incomplete-record-selectors library import: bldflags build-depends: base >= 4.13 && < 4.21, attoparsec, bv-sized >= 1.0.0, bytestring, containers >= 0.5.8.0, crucible >= 0.5, crucible-symio, what4 >= 0.5, extra, lens, itanium-abi >= 0.1.1.1 && < 0.2, llvm-pretty >= 0.12.1 && < 0.14, mtl, parameterized-utils >= 2.1.5 && < 2.2, pretty, prettyprinter >= 1.7.0, text, template-haskell, transformers, utf8-string, vector hs-source-dirs: src exposed-modules: Lang.Crucible.LLVM Lang.Crucible.LLVM.Arch.Util Lang.Crucible.LLVM.Arch.X86 Lang.Crucible.LLVM.ArraySizeProfile Lang.Crucible.LLVM.Bytes Lang.Crucible.LLVM.Ctors Lang.Crucible.LLVM.DataLayout Lang.Crucible.LLVM.Errors Lang.Crucible.LLVM.Errors.MemoryError Lang.Crucible.LLVM.Errors.Poison Lang.Crucible.LLVM.Errors.UndefinedBehavior Lang.Crucible.LLVM.Eval Lang.Crucible.LLVM.Extension Lang.Crucible.LLVM.Functions Lang.Crucible.LLVM.Globals Lang.Crucible.LLVM.Internal Lang.Crucible.LLVM.Intrinsics Lang.Crucible.LLVM.Intrinsics.Cast Lang.Crucible.LLVM.Intrinsics.Libc Lang.Crucible.LLVM.Intrinsics.LLVM Lang.Crucible.LLVM.MalformedLLVMModule Lang.Crucible.LLVM.MemModel Lang.Crucible.LLVM.MemModel.CallStack Lang.Crucible.LLVM.MemModel.CallStack.Internal Lang.Crucible.LLVM.MemModel.Generic Lang.Crucible.LLVM.MemModel.MemLog Lang.Crucible.LLVM.MemModel.Partial Lang.Crucible.LLVM.MemModel.Pointer Lang.Crucible.LLVM.MemModel.Strings Lang.Crucible.LLVM.MemType Lang.Crucible.LLVM.PrettyPrint Lang.Crucible.LLVM.Printf Lang.Crucible.LLVM.QQ Lang.Crucible.LLVM.SymIO Lang.Crucible.LLVM.SimpleLoopFixpoint Lang.Crucible.LLVM.SimpleLoopFixpointCHC Lang.Crucible.LLVM.SimpleLoopInvariant Lang.Crucible.LLVM.Translation Lang.Crucible.LLVM.Translation.Aliases Lang.Crucible.LLVM.TypeContext other-modules: Lang.Crucible.LLVM.Errors.Standards Lang.Crucible.LLVM.Extension.Arch Lang.Crucible.LLVM.Extension.Syntax Lang.Crucible.LLVM.Intrinsics.Common Lang.Crucible.LLVM.Intrinsics.Libcxx Lang.Crucible.LLVM.Intrinsics.Match Lang.Crucible.LLVM.Intrinsics.Options Lang.Crucible.LLVM.MemModel.Common Lang.Crucible.LLVM.MemModel.Options Lang.Crucible.LLVM.MemModel.Type Lang.Crucible.LLVM.MemModel.Value Lang.Crucible.LLVM.Translation.BlockInfo Lang.Crucible.LLVM.Translation.Constant Lang.Crucible.LLVM.Translation.Expr Lang.Crucible.LLVM.Translation.Instruction Lang.Crucible.LLVM.Translation.Monad Lang.Crucible.LLVM.Translation.Options Lang.Crucible.LLVM.Translation.Types Lang.Crucible.LLVM.Types Lang.Crucible.LLVM.Utils default-extensions: NoStarIsType test-suite crucible-llvm-tests import: bldflags import: warns type: exitcode-stdio-1.0 main-is: Tests.hs hs-source-dirs: test other-modules: MemSetup , TestFunctions , TestGlobals , TestMemory , TestTranslation build-depends: base, bv-sized, containers, crucible, crucible-llvm, directory, filepath, lens, llvm-pretty, llvm-pretty-bc-parser, lens, parameterized-utils, process, what4, tasty, tasty-quickcheck, tasty-hunit, tasty-sugar >= 2.0 && < 2.3, vector