doc
diff --git a/examples/linker_stress_test/CMakeLists.txt b/examples/linker_stress_test/CMakeLists.txt
new file mode 100644
index 0000000..234e63c
--- /dev/null
+++ b/examples/linker_stress_test/CMakeLists.txt
@@ -0,0 +1,22 @@
+cmake_minimum_required(VERSION 2.8)
+
+if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
+ # Clang stalls on linking this example - shame... - hope it gets a lot faster in the future
+ # GCC just takes a lot of time - but I want faster travis builds
+ return()
+endif()
+
+get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME)
+project(${PROJECT_NAME})
+
+include(../../scripts/common.cmake)
+
+include_directories("../../doctest/")
+
+if(MSVC)
+ add_definitions(/bigobj)
+endif()
+
+add_executable(${PROJECT_NAME} main.cpp test.cpp)
+
+add_test(NAME ${PROJECT_NAME} COMMAND $<TARGET_FILE:${PROJECT_NAME}>)
diff --git a/examples/linker_stress_test/main.cpp b/examples/linker_stress_test/main.cpp
new file mode 100644
index 0000000..5bf4cfb
--- /dev/null
+++ b/examples/linker_stress_test/main.cpp
@@ -0,0 +1,12 @@
+#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+#include "doctest.h"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
diff --git a/examples/linker_stress_test/readme.txt b/examples/linker_stress_test/readme.txt
new file mode 100644
index 0000000..30889e3
--- /dev/null
+++ b/examples/linker_stress_test/readme.txt
@@ -0,0 +1,27 @@
+Machine:
+ intel i7 3770k
+ 16g ram
+ ssd
+OS:
+ windows 7 x64
+ ubuntu 14.04
+Compilers:
+ MinGW:
+ gcc (x86_64-posix-seh-rev1, Built by MinGW-W64 project) 4.9.0
+ MSVC:
+ MSVC 2013
+ Linux GCC:
+ gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
+
+Test consists of: 10k doctests in each of the 2 cpp files.
+
+gcc (mingw/linux): "-std=c++98 -m64"
+
+debug build:
+ mingw: 121 sec (~100 sec link time)
+ msvc: 11 sec
+ linux: 11 sec (~1 sec link time)
+release build:
+ mingw: 148 sec
+ msvc: 21 sec
+ linux: 24 sec
diff --git a/examples/linker_stress_test/stress.inl b/examples/linker_stress_test/stress.inl
new file mode 100644
index 0000000..325a447
--- /dev/null
+++ b/examples/linker_stress_test/stress.inl
@@ -0,0 +1,1000 @@
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
+TEST_CASE("trololo"){}
diff --git a/examples/linker_stress_test/test.cpp b/examples/linker_stress_test/test.cpp
new file mode 100644
index 0000000..3ebf1fb
--- /dev/null
+++ b/examples/linker_stress_test/test.cpp
@@ -0,0 +1,11 @@
+#include "doctest.h"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"
+#include "stress.inl"