Displaying 5 results from an estimated 5 matches for "instantiate_decl".
2009 Dec 04
4
[LLVMdev] r72619
...member template, it's instantiation is *not* suppressed (despite being
in basic_string<char>), so we emit it as a weak definition.
I don't have a debug llvm-gcc available to see why this might be
happening. The logic to suppress instantiation based on an extern
template is in instantiate_decl (gcc/cp/pt.c):
/* Check to see whether we know that this template will be
instantiated in some other file, as with "extern template"
extension. */
external_p = (DECL_INTERFACE_KNOWN (d) && DECL_REALLY_EXTERN (d));
/* In general, we do not instantiate such te...
2009 Dec 04
0
[LLVMdev] r72619
...;s instantiation is *not* suppressed (despite being
> in basic_string<char>), so we emit it as a weak definition.
>
> I don't have a debug llvm-gcc available to see why this might be
> happening. The logic to suppress instantiation based on an extern
> template is in instantiate_decl (gcc/cp/pt.c):
>
> /* Check to see whether we know that this template will be
> instantiated in some other file, as with "extern template"
> extension. */
> external_p = (DECL_INTERFACE_KNOWN (d) && DECL_REALLY_EXTERN (d));
> /* In general, we d...
2009 Dec 04
0
[LLVMdev] r72619
Hi Bill,
> Here's what I get with TOT compiling with -Os. The orig.ll is what I get
> before r72619. Notice that orig.ll has only one function in it. Both the
> one you sent and duncan.ll have more than one function. It's not the
> fact that more than one function is showing up, but these functions in
> particular shouldn't be there because of the implicit/explicit
2009 Dec 04
2
[LLVMdev] r72619
...* suppressed (despite
>> being
>> in basic_string<char>), so we emit it as a weak definition.
>>
>> I don't have a debug llvm-gcc available to see why this might be
>> happening. The logic to suppress instantiation based on an extern
>> template is in instantiate_decl (gcc/cp/pt.c):
>>
>> /* Check to see whether we know that this template will be
>> instantiated in some other file, as with "extern template"
>> extension. */
>> external_p = (DECL_INTERFACE_KNOWN (d) && DECL_REALLY_EXTERN (d));
>> /...
2009 Dec 04
2
[LLVMdev] r72619
On Dec 4, 2009, at 12:52 AM, Duncan Sands wrote:
> Hi Bill,
>
>> There's a problem with your check-in for r72619 is causing "weak
>> external" symbols to appear in C++ code when it shouldn't. Take
>> this code for example,
>> #include <stdexcept>
>> void dummysymbol() {
>> throw(std::runtime_error("string"));