├── .clang-format ├── .clang-tidy ├── .github └── workflows │ ├── ci-linux.yml │ ├── ci-macos-local.yml │ └── ci-macos.yml ├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── README.md ├── cmake └── conan.cmake ├── conan ├── conandata.yml ├── conanfile.py ├── disable_llvm_versions__ci_opt.patch └── patches │ ├── 13 │ └── calculate_job_pools.patch │ ├── 14 │ └── calculate_job_pools.patch │ ├── 15 │ └── calculate_job_pools.patch │ ├── 16 │ └── calculate_job_pools.patch │ └── 17 │ └── calculate_job_pools.patch ├── conanfile.txt.tpl ├── cppship.toml ├── include └── cppsafe │ ├── AstConsumer.h │ ├── Options.h │ ├── lifetime │ ├── Attr.h │ ├── Debug.h │ ├── Lifetime.h │ ├── LifetimeAttrData.h │ ├── LifetimePset.h │ ├── LifetimePsetBuilder.h │ ├── LifetimeTypeCategory.h │ ├── contract │ │ ├── Annotation.h │ │ ├── CallVisitor.h │ │ └── Parser.h │ └── type │ │ └── Aggregate.h │ └── util │ ├── assert.h │ ├── pointer_variant.h │ └── type.h ├── integration_test ├── .clang-format ├── .clang-tidy ├── annotation │ ├── annotation_capture.cpp │ ├── annotation_contract.cpp │ ├── annotation_contract_legacy.cpp │ ├── annotation_lifetime_const.cpp │ ├── annotation_lifetime_inout.cpp │ └── annotation_owner_and_pointer.cpp ├── case │ ├── cwe415-double-free.cpp │ ├── cwe416-use-after-free.cpp │ ├── cwe476-deref-null-strict.cpp │ ├── cwe476-deref-null.cpp │ ├── cwe562-return-stack-var-strict.cpp │ ├── cwe562-return-stack-var.cpp │ ├── cwe672-invalidated-iter.cpp │ ├── cwe672-lambda-escape.cpp │ ├── cwe675-pointer-to-multi-owner.cpp │ ├── cwe690-deref-returned-null.cpp │ ├── cwe762-bad-delete.cpp │ ├── cwe825-deref-expired-pointer.cpp │ ├── elements_view_cxx17.cpp │ └── scoped_executor.cpp ├── contract │ ├── contract_agg_expansion.cpp │ ├── contract_dtor.cpp │ ├── contract_inout.cpp │ ├── contract_pointer_expansion.cpp │ ├── contract_template.cpp │ ├── expansion_complex_pointer.cpp │ ├── expansion_owner_as_member.cpp │ ├── output_parameter.cpp │ ├── overrides.cpp │ ├── return_inner_owner.cpp │ ├── reverse_iterator.cpp │ └── std_types.cpp ├── debug_functions.cpp ├── example.cpp ├── feature │ ├── aggr_explosion.cpp │ ├── aggr_explosion_loop.cpp │ ├── aggr_move.cpp │ ├── assignment.cpp │ ├── builtin_addressof.cpp │ ├── builtin_file.cpp │ ├── call_invalidate.cpp │ ├── call_post.cpp │ ├── classtemplate_inst_wo_definition.cpp │ ├── common.h │ ├── init_list.cpp │ ├── macro.cpp │ ├── main.cpp │ ├── main2.cpp │ ├── main3.cpp │ ├── member_access_pointer.cpp │ ├── member_relation.cpp │ ├── move_container_disabled.cpp │ ├── null.cpp │ ├── null_assert.cpp │ ├── pointer_container.cpp │ ├── structureal_binding.cpp │ ├── suppress.cpp │ └── temp.cpp ├── hack │ └── output_variable.cpp ├── legacy │ ├── attr-psets-annotation.cpp │ ├── attr-psets.cpp │ └── warn-lifetime-analysis.cpp ├── move │ ├── reset.cpp │ ├── use-after-move-for-value.cpp │ └── use-after-move.cpp ├── options │ ├── warn_contract_post.cpp │ ├── warn_delete.cpp │ ├── warn_delete_strict.cpp │ ├── warn_deref_null.cpp │ ├── warn_no_deref_null.cpp │ ├── warn_null.cpp │ ├── warn_null_call.cpp │ ├── warn_output.cpp │ ├── warn_output_relax.cpp │ ├── warn_pointer_arithmetic.cpp │ ├── warn_pset_global.cpp │ └── warn_unsafe_cast.cpp ├── run_tests.sh ├── safety │ ├── call_post_null.cpp │ ├── cfg.cpp │ ├── contract_param_aggr.cpp │ ├── contract_param_aggr_strict.cpp │ ├── contract_param_pointer.cpp │ ├── contract_return.cpp │ ├── contract_return_aggr.cpp │ ├── local_var.cpp │ ├── new_delete.cpp │ ├── type_aggr_infer.cpp │ ├── type_aggr_init.cpp │ ├── type_aggr_return.cpp │ ├── type_aggr_union.cpp │ ├── type_dynamic_cast.cpp │ ├── type_pointer.cpp │ ├── type_pointer_ctor_from_nullptr.cpp │ ├── type_pointer_ctor_from_value.cpp │ ├── type_pointer_lambda.cpp │ ├── type_pointer_nullness.cpp │ ├── type_pointer_unsafe.cpp │ └── type_value_dtor.cpp └── test.sh ├── lib ├── AstConsumer.cpp └── lifetime │ ├── Debug.cpp │ ├── Lifetime.cpp │ ├── LifetimeAttrHandling.cpp │ ├── LifetimePsetBuilder.cpp │ ├── LifetimeTypeCategory.cpp │ ├── contract │ ├── CallVisitor.cpp │ └── Parser.cpp │ └── type │ └── Aggregate.cpp └── src ├── asan.cpp └── main.cpp /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/.clang-format -------------------------------------------------------------------------------- /.clang-tidy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/.clang-tidy -------------------------------------------------------------------------------- /.github/workflows/ci-linux.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/.github/workflows/ci-linux.yml -------------------------------------------------------------------------------- /.github/workflows/ci-macos-local.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/.github/workflows/ci-macos-local.yml -------------------------------------------------------------------------------- /.github/workflows/ci-macos.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/.github/workflows/ci-macos.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/.gitignore -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/README.md -------------------------------------------------------------------------------- /cmake/conan.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/cmake/conan.cmake -------------------------------------------------------------------------------- /conan/conandata.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/conan/conandata.yml -------------------------------------------------------------------------------- /conan/conanfile.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/conan/conanfile.py -------------------------------------------------------------------------------- /conan/disable_llvm_versions__ci_opt.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/conan/disable_llvm_versions__ci_opt.patch -------------------------------------------------------------------------------- /conan/patches/13/calculate_job_pools.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/conan/patches/13/calculate_job_pools.patch -------------------------------------------------------------------------------- /conan/patches/14/calculate_job_pools.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/conan/patches/14/calculate_job_pools.patch -------------------------------------------------------------------------------- /conan/patches/15/calculate_job_pools.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/conan/patches/15/calculate_job_pools.patch -------------------------------------------------------------------------------- /conan/patches/16/calculate_job_pools.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/conan/patches/16/calculate_job_pools.patch -------------------------------------------------------------------------------- /conan/patches/17/calculate_job_pools.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/conan/patches/17/calculate_job_pools.patch -------------------------------------------------------------------------------- /conanfile.txt.tpl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/conanfile.txt.tpl -------------------------------------------------------------------------------- /cppship.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/cppship.toml -------------------------------------------------------------------------------- /include/cppsafe/AstConsumer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/AstConsumer.h -------------------------------------------------------------------------------- /include/cppsafe/Options.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/Options.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/Attr.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/Attr.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/Debug.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/Debug.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/Lifetime.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/Lifetime.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/LifetimeAttrData.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/LifetimeAttrData.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/LifetimePset.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/LifetimePset.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/LifetimePsetBuilder.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/LifetimePsetBuilder.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/LifetimeTypeCategory.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/LifetimeTypeCategory.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/contract/Annotation.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/contract/Annotation.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/contract/CallVisitor.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/contract/CallVisitor.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/contract/Parser.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/contract/Parser.h -------------------------------------------------------------------------------- /include/cppsafe/lifetime/type/Aggregate.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/lifetime/type/Aggregate.h -------------------------------------------------------------------------------- /include/cppsafe/util/assert.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/util/assert.h -------------------------------------------------------------------------------- /include/cppsafe/util/pointer_variant.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/util/pointer_variant.h -------------------------------------------------------------------------------- /include/cppsafe/util/type.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/include/cppsafe/util/type.h -------------------------------------------------------------------------------- /integration_test/.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | DisableFormat: true -------------------------------------------------------------------------------- /integration_test/.clang-tidy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/.clang-tidy -------------------------------------------------------------------------------- /integration_test/annotation/annotation_capture.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/annotation/annotation_capture.cpp -------------------------------------------------------------------------------- /integration_test/annotation/annotation_contract.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/annotation/annotation_contract.cpp -------------------------------------------------------------------------------- /integration_test/annotation/annotation_contract_legacy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/annotation/annotation_contract_legacy.cpp -------------------------------------------------------------------------------- /integration_test/annotation/annotation_lifetime_const.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/annotation/annotation_lifetime_const.cpp -------------------------------------------------------------------------------- /integration_test/annotation/annotation_lifetime_inout.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/annotation/annotation_lifetime_inout.cpp -------------------------------------------------------------------------------- /integration_test/annotation/annotation_owner_and_pointer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/annotation/annotation_owner_and_pointer.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe415-double-free.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe415-double-free.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe416-use-after-free.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe416-use-after-free.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe476-deref-null-strict.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe476-deref-null-strict.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe476-deref-null.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe476-deref-null.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe562-return-stack-var-strict.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe562-return-stack-var-strict.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe562-return-stack-var.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe562-return-stack-var.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe672-invalidated-iter.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe672-invalidated-iter.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe672-lambda-escape.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe672-lambda-escape.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe675-pointer-to-multi-owner.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe675-pointer-to-multi-owner.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe690-deref-returned-null.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe690-deref-returned-null.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe762-bad-delete.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe762-bad-delete.cpp -------------------------------------------------------------------------------- /integration_test/case/cwe825-deref-expired-pointer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/cwe825-deref-expired-pointer.cpp -------------------------------------------------------------------------------- /integration_test/case/elements_view_cxx17.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/elements_view_cxx17.cpp -------------------------------------------------------------------------------- /integration_test/case/scoped_executor.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/case/scoped_executor.cpp -------------------------------------------------------------------------------- /integration_test/contract/contract_agg_expansion.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/contract_agg_expansion.cpp -------------------------------------------------------------------------------- /integration_test/contract/contract_dtor.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/contract_dtor.cpp -------------------------------------------------------------------------------- /integration_test/contract/contract_inout.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/contract_inout.cpp -------------------------------------------------------------------------------- /integration_test/contract/contract_pointer_expansion.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/contract_pointer_expansion.cpp -------------------------------------------------------------------------------- /integration_test/contract/contract_template.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/contract_template.cpp -------------------------------------------------------------------------------- /integration_test/contract/expansion_complex_pointer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/expansion_complex_pointer.cpp -------------------------------------------------------------------------------- /integration_test/contract/expansion_owner_as_member.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/expansion_owner_as_member.cpp -------------------------------------------------------------------------------- /integration_test/contract/output_parameter.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/output_parameter.cpp -------------------------------------------------------------------------------- /integration_test/contract/overrides.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/overrides.cpp -------------------------------------------------------------------------------- /integration_test/contract/return_inner_owner.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/return_inner_owner.cpp -------------------------------------------------------------------------------- /integration_test/contract/reverse_iterator.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/reverse_iterator.cpp -------------------------------------------------------------------------------- /integration_test/contract/std_types.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/contract/std_types.cpp -------------------------------------------------------------------------------- /integration_test/debug_functions.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/debug_functions.cpp -------------------------------------------------------------------------------- /integration_test/example.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/example.cpp -------------------------------------------------------------------------------- /integration_test/feature/aggr_explosion.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/aggr_explosion.cpp -------------------------------------------------------------------------------- /integration_test/feature/aggr_explosion_loop.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/aggr_explosion_loop.cpp -------------------------------------------------------------------------------- /integration_test/feature/aggr_move.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/aggr_move.cpp -------------------------------------------------------------------------------- /integration_test/feature/assignment.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/assignment.cpp -------------------------------------------------------------------------------- /integration_test/feature/builtin_addressof.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/builtin_addressof.cpp -------------------------------------------------------------------------------- /integration_test/feature/builtin_file.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/builtin_file.cpp -------------------------------------------------------------------------------- /integration_test/feature/call_invalidate.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/call_invalidate.cpp -------------------------------------------------------------------------------- /integration_test/feature/call_post.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/call_post.cpp -------------------------------------------------------------------------------- /integration_test/feature/classtemplate_inst_wo_definition.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/classtemplate_inst_wo_definition.cpp -------------------------------------------------------------------------------- /integration_test/feature/common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/common.h -------------------------------------------------------------------------------- /integration_test/feature/init_list.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/init_list.cpp -------------------------------------------------------------------------------- /integration_test/feature/macro.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/macro.cpp -------------------------------------------------------------------------------- /integration_test/feature/main.cpp: -------------------------------------------------------------------------------- 1 | // expected-no-diagnostics 2 | int main() 3 | { 4 | } 5 | -------------------------------------------------------------------------------- /integration_test/feature/main2.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/main2.cpp -------------------------------------------------------------------------------- /integration_test/feature/main3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/main3.cpp -------------------------------------------------------------------------------- /integration_test/feature/member_access_pointer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/member_access_pointer.cpp -------------------------------------------------------------------------------- /integration_test/feature/member_relation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/member_relation.cpp -------------------------------------------------------------------------------- /integration_test/feature/move_container_disabled.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/move_container_disabled.cpp -------------------------------------------------------------------------------- /integration_test/feature/null.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/null.cpp -------------------------------------------------------------------------------- /integration_test/feature/null_assert.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/null_assert.cpp -------------------------------------------------------------------------------- /integration_test/feature/pointer_container.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/pointer_container.cpp -------------------------------------------------------------------------------- /integration_test/feature/structureal_binding.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/structureal_binding.cpp -------------------------------------------------------------------------------- /integration_test/feature/suppress.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/suppress.cpp -------------------------------------------------------------------------------- /integration_test/feature/temp.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/feature/temp.cpp -------------------------------------------------------------------------------- /integration_test/hack/output_variable.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/hack/output_variable.cpp -------------------------------------------------------------------------------- /integration_test/legacy/attr-psets-annotation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/legacy/attr-psets-annotation.cpp -------------------------------------------------------------------------------- /integration_test/legacy/attr-psets.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/legacy/attr-psets.cpp -------------------------------------------------------------------------------- /integration_test/legacy/warn-lifetime-analysis.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/legacy/warn-lifetime-analysis.cpp -------------------------------------------------------------------------------- /integration_test/move/reset.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/move/reset.cpp -------------------------------------------------------------------------------- /integration_test/move/use-after-move-for-value.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/move/use-after-move-for-value.cpp -------------------------------------------------------------------------------- /integration_test/move/use-after-move.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/move/use-after-move.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_contract_post.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_contract_post.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_delete.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_delete.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_delete_strict.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_delete_strict.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_deref_null.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_deref_null.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_no_deref_null.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_no_deref_null.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_null.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_null.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_null_call.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_null_call.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_output.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_output.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_output_relax.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_output_relax.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_pointer_arithmetic.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_pointer_arithmetic.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_pset_global.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_pset_global.cpp -------------------------------------------------------------------------------- /integration_test/options/warn_unsafe_cast.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/options/warn_unsafe_cast.cpp -------------------------------------------------------------------------------- /integration_test/run_tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/run_tests.sh -------------------------------------------------------------------------------- /integration_test/safety/call_post_null.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/call_post_null.cpp -------------------------------------------------------------------------------- /integration_test/safety/cfg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/cfg.cpp -------------------------------------------------------------------------------- /integration_test/safety/contract_param_aggr.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/contract_param_aggr.cpp -------------------------------------------------------------------------------- /integration_test/safety/contract_param_aggr_strict.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/contract_param_aggr_strict.cpp -------------------------------------------------------------------------------- /integration_test/safety/contract_param_pointer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/contract_param_pointer.cpp -------------------------------------------------------------------------------- /integration_test/safety/contract_return.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/contract_return.cpp -------------------------------------------------------------------------------- /integration_test/safety/contract_return_aggr.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/contract_return_aggr.cpp -------------------------------------------------------------------------------- /integration_test/safety/local_var.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/local_var.cpp -------------------------------------------------------------------------------- /integration_test/safety/new_delete.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/new_delete.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_aggr_infer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_aggr_infer.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_aggr_init.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_aggr_init.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_aggr_return.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_aggr_return.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_aggr_union.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_aggr_union.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_dynamic_cast.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_dynamic_cast.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_pointer.cpp: -------------------------------------------------------------------------------- 1 | // expected-no-diagnostics -------------------------------------------------------------------------------- /integration_test/safety/type_pointer_ctor_from_nullptr.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_pointer_ctor_from_nullptr.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_pointer_ctor_from_value.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_pointer_ctor_from_value.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_pointer_lambda.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_pointer_lambda.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_pointer_nullness.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_pointer_nullness.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_pointer_unsafe.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_pointer_unsafe.cpp -------------------------------------------------------------------------------- /integration_test/safety/type_value_dtor.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/safety/type_value_dtor.cpp -------------------------------------------------------------------------------- /integration_test/test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/integration_test/test.sh -------------------------------------------------------------------------------- /lib/AstConsumer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/lib/AstConsumer.cpp -------------------------------------------------------------------------------- /lib/lifetime/Debug.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/lib/lifetime/Debug.cpp -------------------------------------------------------------------------------- /lib/lifetime/Lifetime.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/lib/lifetime/Lifetime.cpp -------------------------------------------------------------------------------- /lib/lifetime/LifetimeAttrHandling.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/lib/lifetime/LifetimeAttrHandling.cpp -------------------------------------------------------------------------------- /lib/lifetime/LifetimePsetBuilder.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/lib/lifetime/LifetimePsetBuilder.cpp -------------------------------------------------------------------------------- /lib/lifetime/LifetimeTypeCategory.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/lib/lifetime/LifetimeTypeCategory.cpp -------------------------------------------------------------------------------- /lib/lifetime/contract/CallVisitor.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/lib/lifetime/contract/CallVisitor.cpp -------------------------------------------------------------------------------- /lib/lifetime/contract/Parser.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/lib/lifetime/contract/Parser.cpp -------------------------------------------------------------------------------- /lib/lifetime/type/Aggregate.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/lib/lifetime/type/Aggregate.cpp -------------------------------------------------------------------------------- /src/asan.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/src/asan.cpp -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qqiangwu/cppsafe/HEAD/src/main.cpp --------------------------------------------------------------------------------