Displaying 5 results from an estimated 5 matches for "decl_interface_known".
2009 Dec 04
4
[LLVMdev] r72619
...ght 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 templates... */
if (external_p
/* ... but we instantiate inline functions so that we can inline
them and ... */
&& ! (TREE_CODE (d) == FUNCTION_DECL && DECL_INLINE (d))...
2009 Dec 04
0
[LLVMdev] r72619
...gic 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 templates... */
> if (external_p
> /* ... but we instantiate inline functions so that we can inline
> them and ... */
> && ! (TREE_CODE (d) == FUNCTION_DECL &&...
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
...nstantiation 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 templates... */
>> if (external_p
>> /* ... but we instantiate inline functions so that we can inline
>> them and ... */
>> && ! (TREE_CODE (d) == FUNCTION...
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"));