Revision 39728477f077d5d51b92c2424be69b3dcca28126 authored by Dmitri Naumov on 09 June 2021, 09:37:23 UTC, committed by Thomas Fischer on 09 June 2021, 12:36:34 UTC
spdlog is linked "public" in BaseLib.

Reason is the violation of odr for some globals defined
in the spdlog library.

==1540297==ERROR: AddressSanitizer: odr-violation (0x7f5ea9c9d020):
  [1] size=40 'vtable for spdlog::spdlog_ex' _deps/spdlog-src/src/spdlog.cpp
  [2] size=40 'vtable for spdlog::spdlog_ex' _deps/spdlog-src/src/spdlog.cpp
These globals were registered at these points:
  [1]:
    #0 0x5614686e0dfa in __asan_register_globals.part.0 (/home/naumov/w/ogs/d/bin/ogs+0x1bfdfa)
    #1 0x7f5e6cdbe7eb in asan.module_ctor (/home/naumov/w/ogs/d/bin/../lib/libMeshLib.so+0x17d37eb)

  [2]:
    #0 0x558bd62b6dfa in __asan_register_globals.part.0 (/home/naumov/w/ogs/d/bin/ogs+0x1bfdfa)
    #1 0x7f831c7e54ab in asan.module_ctor (/home/naumov/w/ogs/d/bin/../lib/libBaseLib.so+0x89a4ab)
1 parent fa9c332
Raw File
Stream.h
/**
 * \author Norihiro Watanabe
 * \date   2014-03-07
 * \brief  Helper tools for debugging
 *
 * \file
 * \copyright
 * Copyright (c) 2012-2021, OpenGeoSys Community (http://www.opengeosys.org)
 *            Distributed under a Modified BSD License.
 *              See accompanying file LICENSE.txt or
 *              http://www.opengeosys.org/project/license
 *
 */

#pragma once

#include <algorithm>
#include <iterator>
#include <ostream>
#include <vector>

template<typename T>
std::ostream &operator <<(std::ostream &os, const std::vector<T> &v) {
    std::copy(v.begin(), v.end(), std::ostream_iterator<T>(os, " "));
    os << "\n";
    return os;
}
back to top