Skip to content
  1. Nov 05, 2009
  2. Oct 28, 2009
    • Douglas Gregor's avatar
      Implement proper linkage for explicit instantiation declarations of · b7e5c847
      Douglas Gregor authored
      inlined functions. For example, given
      
        template<typename T>
        class string {
          unsigned Len;
      
        public:
          unsigned size() const { return Len; }
        };
      
        extern template class string<char>;
      
      we now give the instantiation of string<char>::size
      available_externally linkage (if it is ever instantiated!), as
      permitted by the C++0x standard.
            
      
      llvm-svn: 85340
      b7e5c847
  3. Oct 27, 2009
  4. Oct 26, 2009
  5. Oct 18, 2009
  6. Oct 14, 2009
  7. Oct 13, 2009
  8. Oct 12, 2009
  9. Oct 08, 2009
    • Anders Carlsson's avatar
      If a global initializer has a non-trivial constructor or destructor, we never... · a18ed9b1
      Anders Carlsson authored
      If a global initializer has a non-trivial constructor or destructor, we never want to defer generation of it, even if it is declared static.
      
      With this change we're finally able to compile and run the (infamous)
      
      #include <string>
      #include <iostream>
      
      int main(int argc, char **argv) {
        std::cout << "Hello, World" << std::endl;
      }
      
      $ clang hello.cpp -lstdc++ -o hello
      $ ./hello 
      Hello, World
      
      llvm-svn: 83559
      a18ed9b1
  10. Oct 07, 2009
  11. Oct 06, 2009
  12. Oct 05, 2009
  13. Oct 01, 2009
  14. Sep 23, 2009
  15. Sep 22, 2009
  16. Sep 14, 2009
    • Daniel Dunbar's avatar
      Fix subtle bug in generating LLVM function declarations for builtin functions. · ff0553ec
      Daniel Dunbar authored
      The decl wasn't being passed down, which meant that function attributes were not
      being set correctly. This is particularly important for ARM, since it wants to
      override the calling convention. Instead we would emit the builtin with the
      wrong calling convention, and instcombine would come along and merrily shred all
      the calls to it. :)
      
      llvm-svn: 81756
      ff0553ec
  17. Sep 13, 2009
  18. Sep 12, 2009
  19. Sep 11, 2009
  20. Sep 09, 2009
  21. Sep 05, 2009
    • Douglas Gregor's avatar
      Improve the AST representation and semantic analysis for extern · 34ec2ef1
      Douglas Gregor authored
      templates. We now distinguish between an explicit instantiation
      declaration and an explicit instantiation definition, and know not to
      instantiate explicit instantiation declarations. Unfortunately, there
      is some remaining confusion w.r.t. instantiation of out-of-line member
      function definitions that causes trouble here.
       
      
      llvm-svn: 81053
      34ec2ef1
  22. Sep 04, 2009
    • Douglas Gregor's avatar
      Don't generate any code for an explicit call to a trivial destructor. · d94105a1
      Douglas Gregor authored
      Now that parsing, semantic analysis, and (I think) code generation of
      pseudo-destructor expressions and explicit destructor calls works,
      update the example-dynarray.cpp test to destroy the objects it
      allocates and update the test to actually compile + link.
      The code seems correct, but the Clang-compiled version dies with a
      malloc error. Time to debug!
      
      llvm-svn: 81025
      d94105a1
  23. Sep 03, 2009
  24. Aug 27, 2009
Loading