Skip to content
  1. Jan 13, 2011
    • Peter Collingbourne's avatar
      Move name mangling support from CodeGen to AST. In the · 0ff0b376
      Peter Collingbourne authored
      process, perform a number of refactorings:
      
      - Move MiscNameMangler member functions to MangleContext
      - Remove GlobalDecl dependency from MangleContext
      - Make MangleContext abstract and move Itanium/Microsoft functionality
        to their own classes/files
      - Implement ASTContext::createMangleContext and have CodeGen use it
      
      No (intended) functionality change.
      
      llvm-svn: 123386
      0ff0b376
  2. Jan 12, 2011
  3. Jan 11, 2011
  4. Jan 10, 2011
  5. Jan 09, 2011
  6. Jan 08, 2011
  7. Jan 07, 2011
  8. Jan 06, 2011
  9. Jan 05, 2011
    • Douglas Gregor's avatar
      Add Decl::isParameterPack(), which covers both function and template · 3c6bd2ad
      Douglas Gregor authored
      parameter packs, along with ParmVarDecl::isParameterPack(), which
      looks for function parameter packs. Use these routines to fix some
      obvious FIXMEs.
      
      llvm-svn: 122904
      3c6bd2ad
    • Douglas Gregor's avatar
      Replace the representation of template template argument pack · e4ff4b56
      Douglas Gregor authored
      expansions with something that is easier to use correctly: a new
      template argment kind, rather than a bit on an existing kind. Update
      all of the switch statements that deal with template arguments, fixing
      a few latent bugs in the process. I"m happy with this representation,
      now.
      
      And, oh look! Template instantiation and deduction work for template
      template argument pack expansions.
      
      llvm-svn: 122896
      e4ff4b56
    • Douglas Gregor's avatar
      Add semantic analysis for the creation of and an AST representation · eb29d18e
      Douglas Gregor authored
      for template template argument pack expansions. This allows fun such
      as: 
      
        template<template<class> class ...> struct apply_impl { /*...*/ };
        template<template<class> class ...Metafunctions> struct apply {
          typedef typename apply_impl<Metafunctions...>::type type;
        };
      
      However, neither template argument deduction nor template
      instantiation is implemented for template template argument packs, so
      this functionality isn't useful yet.
      
      I'll probably replace the encoding of template template
      argument pack expansions in TemplateArgument so that it's harder to
      accidentally forget about the expansion. However, this is a step in
      the right general direction.
      
      llvm-svn: 122890
      eb29d18e
    • Douglas Gregor's avatar
      Implement support for template template parameter packs, e.g., · f550077e
      Douglas Gregor authored
        template<template<class> class ...Metafunctions>
          struct apply_to_each;
      
      llvm-svn: 122874
      f550077e
    • John McCall's avatar
      Refactor the application of type attributes so that attributes from · 3882ace2
      John McCall authored
      the declaration-specifiers and on the declarator itself are moved
      to the appropriate declarator chunk.  This permits a greatly
      simplified model for how to apply these attributes, as well as
      allowing a much more efficient query for the GC attribute.
      Now all qualifier queries follow the same basic strategy of
      "local qualifiers, local qualifiers on the canonical type,
      then look through arrays".  This can be easily optimized by
      changing the canonical qualified-array-type representation.
      
      Do not process type attributes as decl attributes on declarations
      with declarators.
      
      When computing the type of a block, synthesize a prototype
      function declarator chunk if the decl-spec type was not a
      function.  This simplifies the logic for building block signatures.
      
      Change the logic which inserts an objc_read_weak on a block
      literal to only fire if the block has a __weak __block variable,
      rather than if the return type of the block is __weak qualified,
      which is not actually a sensible thing to ask.
      
      llvm-svn: 122871
      3882ace2
  10. Jan 04, 2011
  11. Jan 03, 2011
  12. Dec 30, 2010
    • David Chisnall's avatar
      Expose Objective-C type encodings of declarations to libclang users. This... · 50e4ebae
      David Chisnall authored
      Expose Objective-C type encodings of declarations to libclang users.  This also adds a method in ASTContext which encodes FunctionDecls using the same encoding format that is used for Objective-C methods.  
      
      llvm-svn: 122639
      50e4ebae
    • Rafael Espindola's avatar
      Fix PR8796. · 7bcde197
      Rafael Espindola authored
      The problem was that we were asserting the we never added an empty class
      to the same offset twice. This is not true for unions, where two members, empty
      or not, can have the some offset.
      
      llvm-svn: 122633
      7bcde197
  13. Dec 26, 2010
  14. Dec 24, 2010
  15. Dec 23, 2010
  16. Dec 22, 2010
  17. Dec 21, 2010
Loading