Skip to content
Snippets Groups Projects
Commit 41f001f0 authored by Eric Christopher's avatar Eric Christopher
Browse files

Migrate weak-external.cpp from llvm/test/FrontendC++.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137763 91177308-0d34-0410-b5e6-96231b3b80d8
parent 32e48a36
No related branches found
No related tags found
No related merge requests found
// RUN: %clang -fexceptions %s -S -emit-llvm -o - | FileCheck %s
// PR4262
// CHECK-NOT: _ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag
// The "basic_string" extern template instantiation declaration is supposed to
// suppress the implicit instantiation of non-inline member functions. Make sure
// that we suppress the implicit instantiation of non-inline member functions
// defined out-of-line. That we aren't instantiating the basic_string
// constructor when we shouldn't be. Such an instantiation forces the implicit
// instantiation of _S_construct<const char*>. Since _S_construct is a member
// template, it's instantiation is *not* suppressed (despite being in
// basic_string<char>), so we would emit it as a weak definition.
#include <stdexcept>
void dummysymbol() {
throw(std::runtime_error("string"));
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment