[LLVMbugs] [Bug 19786] New: Attributes on template class member function definitions are silently ignored after instantiation of class
    bugzilla-daemon at llvm.org 
    bugzilla-daemon at llvm.org
       
    Sun May 18 08:57:25 PDT 2014
    
    
  
http://llvm.org/bugs/show_bug.cgi?id=19786
            Bug ID: 19786
           Summary: Attributes on template class member function
                    definitions are silently ignored after instantiation
                    of class
           Product: clang
           Version: trunk
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: st at quanttec.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified
When the following test case is compiled with clang, the noinline attribute on
the "m" definition is silently ignored during the code generation for
Test<int>::m. 
If one moves the definition of f below Test<T>::m or instantiates Test in f
with a different type than int, the noinline attribute on Test<int>::m is
properly honoured.
noinline is just an example, of course. The same thing happens e.g. with the
no_sanitize_address attribute.
GCC also seems to have this issue.
template <typename T>
struct Test {
  void m();
};
void f() {
  Test<int> t;
}
void e();
template <typename T>
__attribute__((noinline))
void Test<T>::m() { 
  e();
}
void test(Test<int> t) {
  t.m();
}
-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140518/82e32efe/attachment.html>
    
    
More information about the llvm-bugs
mailing list