aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2016-10-13 14:42:29 -0400
committerJack Lloyd <[email protected]>2016-10-13 14:42:29 -0400
commit9f7b4486e1015886638168f49673398bee7a71bf (patch)
treec82efa8b12765cc5a793758ac6ea39e9d559197b
parent30c85ac981fdad46639ce02aa7e8612601fc5245 (diff)
parentd137c28ccc212067e43bfe17ac8328bec0f944fe (diff)
Merge GH #646 Fix MSVC debug configurations. Add debug builds to AppVeyor
-rw-r--r--src/lib/base/secmem.h9
-rw-r--r--src/scripts/ci/appveyor.yml15
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