Skip to content

Commit

Permalink
build: enable extra runtime checks in libstdc++/libc++ in debug mode
Browse files Browse the repository at this point in the history
Change-Id: Ieece113833f210d03266552f2062b337a8da7d16
  • Loading branch information
Pesa committed Jan 15, 2024
1 parent afcf75d commit 8a93284
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions .waf-tools/default-compiler-flags.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,9 @@ def getDebugFlags(self, conf):
'-Wno-error=maybe-uninitialized', # Bug #1615
]
flags['LINKFLAGS'] += self.__linkFlags
# Enable assertions in libstdc++
# https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_macros.html
flags['DEFINES'] += ['_GLIBCXX_ASSERTIONS=1']
return flags

def getOptimizedFlags(self, conf):
Expand Down Expand Up @@ -235,6 +238,13 @@ def getGeneralFlags(self, conf):
def getDebugFlags(self, conf):
flags = super().getDebugFlags(conf)
flags['CXXFLAGS'] += self.__cxxFlags
# Enable assertions in libc++
if self.getCompilerVersion(conf) >= (18, 0, 0):
# https://libcxx.llvm.org/Hardening.html
flags['DEFINES'] += ['_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE']
elif self.getCompilerVersion(conf) >= (15, 0, 0):
# https://releases.llvm.org/15.0.0/projects/libcxx/docs/UsingLibcxx.html#enabling-the-safe-libc-mode
flags['DEFINES'] += ['_LIBCPP_ENABLE_ASSERTIONS=1']
return flags

def getOptimizedFlags(self, conf):
Expand Down

0 comments on commit 8a93284

Please sign in to comment.