bughunt: build testcase statically linked
...but still dynamically linking against the core lib But the actual template instantiations happen now within the two compilation units, which are linked statically. When looking into the symbol table, we can see that the static field is emitted two times readelf -W target/clang-static-init -s | c++filt |less
This commit is contained in:
parent
cec78fdc58
commit
10a511d29c
4 changed files with 21 additions and 30 deletions
|
|
@ -9,10 +9,12 @@ Import('env core support_lib')
|
|||
|
||||
|
||||
envR = env.Clone()
|
||||
envR.Append(CPPPATH='research')
|
||||
# envR.Append(CCFLAGS=' -O3 ')
|
||||
|
||||
# build additional test and administrative tools....
|
||||
experiments = [ envR.Program('try', ['try.cpp'] + support_lib) #### to try out some feature...
|
||||
, envR.Program('clang-static-init', ['clang-static-init-1.cpp', 'clang-static-init-2.cpp'] + core)
|
||||
]
|
||||
|
||||
#
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#include "lib/test/run.hpp"
|
||||
#include "proc/hh.hpp"
|
||||
|
||||
#include "proc/config-resolver.hpp"
|
||||
#include "clang-static-init.hpp"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
|
@ -12,27 +12,19 @@ using std::cout;
|
|||
using std::endl;
|
||||
|
||||
|
||||
namespace proc {
|
||||
namespace test {
|
||||
int
|
||||
main (int, char**)
|
||||
{
|
||||
cout << "\n.gulp.\n";
|
||||
|
||||
ConfigResolver& ref1 = ConfigResolver::instance();
|
||||
|
||||
ConfigResolver& sub2 = test::fabricate();
|
||||
|
||||
cout << "sub1="<< &ref1 << " sub2="<< &sub2 <<"\n";
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
class StaticInstance_test : public Test
|
||||
{
|
||||
virtual void
|
||||
run (Arg)
|
||||
{
|
||||
ConfigResolver& ref1 = ConfigResolver::instance();
|
||||
|
||||
ConfigResolver& sub2 = fabricate();
|
||||
|
||||
cout << "sub1="<< &ref1 << " sub2="<< &sub2 <<"\n";
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/** Register this test class... */
|
||||
LAUNCHER (StaticInstance_test, "unit bug");
|
||||
|
||||
|
||||
|
||||
}} // namespace proc::test
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
#include "proc/hh.hpp"
|
||||
#include "clang-static-init.hpp"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
|
@ -8,7 +8,6 @@ using std::cout;
|
|||
using std::endl;
|
||||
|
||||
|
||||
namespace proc {
|
||||
namespace test {
|
||||
|
||||
|
||||
|
|
@ -33,4 +32,4 @@ namespace test {
|
|||
}
|
||||
|
||||
|
||||
}} // namespace proc::test
|
||||
} // namespace test
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
#include "proc/config-resolver.hpp"
|
||||
|
||||
namespace proc {
|
||||
namespace test {
|
||||
|
||||
template<typename T>
|
||||
|
|
@ -40,5 +39,4 @@ namespace test {
|
|||
|
||||
|
||||
|
||||
}} // namespace proc::test
|
||||
|
||||
} // namespace test
|
||||
|
|
|
|||
Loading…
Reference in a new issue