Skip to content
  • Eric Fiselier's avatar
    39c193b1
    Make __wrap_iter work with GCC again · 39c193b1
    Eric Fiselier authored
    Summary:
    This bug was originally fixed in http://reviews.llvm.org/D7201. 
    
    However it was broken again by the fix to https://llvm.org/bugs/show_bug.cgi?id=22605.
    
    This patch re-fixes __wrap_iter with GCC by providing a forward declaration of <vector> before the friend declaration in __wrap_iter.
    This patch avoids the issues in PR22605 by putting canonical forward declarations in <iosfwd> and including <iosfwd> in <vector>.
    
    <iosfwd> was chosen as the canonical forward declaration headers for the following reasons:
    
    1. `<iosfwd>` is small with almost no dependancies.
    2. It already forward declares `std::allocator`
    3. It is already included in `<iterator>` which we need to fix the GCC bug.
    
    This patch fixes the test "gcc_workaround.pass.cpp"
    
    Reviewers: mclow.lists, EricWF
    
    Subscribers: cfe-commits
    
    Differential Revision: http://reviews.llvm.org/D16345
    
    llvm-svn: 261382
    39c193b1
    Make __wrap_iter work with GCC again
    Eric Fiselier authored
    Summary:
    This bug was originally fixed in http://reviews.llvm.org/D7201. 
    
    However it was broken again by the fix to https://llvm.org/bugs/show_bug.cgi?id=22605.
    
    This patch re-fixes __wrap_iter with GCC by providing a forward declaration of <vector> before the friend declaration in __wrap_iter.
    This patch avoids the issues in PR22605 by putting canonical forward declarations in <iosfwd> and including <iosfwd> in <vector>.
    
    <iosfwd> was chosen as the canonical forward declaration headers for the following reasons:
    
    1. `<iosfwd>` is small with almost no dependancies.
    2. It already forward declares `std::allocator`
    3. It is already included in `<iterator>` which we need to fix the GCC bug.
    
    This patch fixes the test "gcc_workaround.pass.cpp"
    
    Reviewers: mclow.lists, EricWF
    
    Subscribers: cfe-commits
    
    Differential Revision: http://reviews.llvm.org/D16345
    
    llvm-svn: 261382
Loading