diff options
author | Jack Lloyd <[email protected]> | 2016-10-13 14:42:29 -0400 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2016-10-13 14:42:29 -0400 |
commit | 9f7b4486e1015886638168f49673398bee7a71bf (patch) | |
tree | c82efa8b12765cc5a793758ac6ea39e9d559197b | |
parent | 30c85ac981fdad46639ce02aa7e8612601fc5245 (diff) | |
parent | d137c28ccc212067e43bfe17ac8328bec0f944fe (diff) |
Merge GH #646 Fix MSVC debug configurations. Add debug builds to AppVeyor
-rw-r--r-- | src/lib/base/secmem.h | 9 | ||||
-rw-r--r-- | src/scripts/ci/appveyor.yml | 15 |
2 files changed, 21 insertions, 3 deletions
diff --git a/src/lib/base/secmem.h b/src/lib/base/secmem.h index ff76e9429..a99132507 100644 --- a/src/lib/base/secmem.h +++ b/src/lib/base/secmem.h @@ -24,7 +24,16 @@ template<typename T> class secure_allocator { public: + /* + * Assert exists to prevent someone from doing something that will + * probably crash anyway (like secure_vector<non_POD_t> where ~non_POD_t + * deletes a member pointer which was zeroed before it ran). + * MSVC in debug mode uses non-integral proxy types in container types + * like std::vector, thus we disable the check there. + */ +#if !defined(_ITERATOR_DEBUG_LEVEL) || _ITERATOR_DEBUG_LEVEL == 0 static_assert(std::is_integral<T>::value, "secure_allocator supports only integer types"); +#endif typedef T value_type; diff --git a/src/scripts/ci/appveyor.yml b/src/scripts/ci/appveyor.yml index 29100e415..17cf86fdd 100644 --- a/src/scripts/ci/appveyor.yml +++ b/src/scripts/ci/appveyor.yml @@ -4,6 +4,10 @@ platform: - x86 - x86_amd64 +configuration: + - Release + - Debug + environment: matrix: - COMPILER: msvc-12.0 @@ -11,13 +15,13 @@ environment: - COMPILER: msvc-12.0 MODE: --disable-shared - COMPILER: msvc-12.0 - MODE: --via-amalgamation + MODE: --amalgamation - COMPILER: msvc-14.0 MODE: --enable-shared - COMPILER: msvc-14.0 MODE: --disable-shared - COMPILER: msvc-14.0 - MODE: --via-amalgamation + MODE: --amalgamation install: - if %compiler% == msvc-12.0 ( @@ -32,7 +36,12 @@ install: - 7z e jom.zip build_script: - - python configure.py --cc=msvc --cpu=%PLATFORM% %MODE% --with-pkcs11 + - if %configuration% == Release ( + python configure.py --cc=msvc --cpu=%PLATFORM% %MODE% --with-pkcs11 + ) + - if %configuration% == Debug ( + python configure.py --cc=msvc --cpu=%PLATFORM% %MODE% --with-pkcs11 --debug-mode + ) - jom -j2 - botan-test - nmake install |