Skip to content
  1. Jan 29, 2009
  2. Jan 28, 2009
    • Douglas Gregor's avatar
      Code generation support for C99 designated initializers. · 347f7eab
      Douglas Gregor authored
      The approach I've taken in this patch is relatively straightforward,
      although the code itself is non-trivial. Essentially, as we process
      an initializer list we build up a fully-explicit representation of the
      initializer list, where each of the subobject initializations occurs
      in order. Designators serve to "fill in" subobject initializations in
      a non-linear way. The fully-explicit representation makes initializer
      lists (both with and without designators) easy to grok for codegen and
      later semantic analyses. We keep the syntactic form of the initializer
      list linked into the AST for those clients interested in exactly what
      the user wrote.
      
      Known limitations:
        - Designating a member of a union that isn't the first member may
          result in bogus initialization (we warn about this)
        - GNU array-range designators are not supported (we warn about this)
      
      llvm-svn: 63242
      347f7eab
  3. Jan 27, 2009
  4. Jan 23, 2009
  5. Jan 22, 2009
    • Douglas Gregor's avatar
      Initial implementation of semantic analysis and ASTs for C99 · e4a0bb7a
      Douglas Gregor authored
      designated initializers. This implementation should cover all of the
      constraints in C99 6.7.8, including long, complex designations and
      computing the size of incomplete array types initialized with a
      designated initializer. Please see the new test-case and holler if you
      find cases where this doesn't work.
      
      There are still some wrinkles with GNU's anonymous structs and
      anonymous unions (it isn't clear how these should work; we'll just
      follow GCC's lead) and with designated initializers for the members of a
      union. I'll tackle those very soon.
      
      CodeGen is still nonexistent, and there's some leftover code in the
      parser's representation of designators that I'll also need to clean up.
      
      llvm-svn: 62737
      e4a0bb7a
  6. Jan 14, 2009
    • Douglas Gregor's avatar
      Introduce support for C++0x explicit conversion operators (N2437) · 5fb53972
      Douglas Gregor authored
      Small cleanup in the handling of user-defined conversions. 
      
      Also, implement an optimization when constructing a call. We avoid
      recomputing implicit conversion sequences and instead use those
      conversion sequences that we computed as part of overload resolution.
      
      llvm-svn: 62231
      5fb53972
  7. Jan 08, 2009
  8. Jan 07, 2009
  9. Dec 11, 2008
    • Douglas Gregor's avatar
      7a4fad1b
    • Douglas Gregor's avatar
      Unifies the name-lookup mechanisms used in various parts of the AST · 91f84216
      Douglas Gregor authored
      and separates lexical name lookup from qualified name lookup. In
      particular:
        * Make DeclContext the central data structure for storing and
          looking up declarations within existing declarations, e.g., members
          of structs/unions/classes, enumerators in C++0x enums, members of
          C++ namespaces, and (later) members of Objective-C
          interfaces/implementations. DeclContext uses a lazily-constructed
          data structure optimized for fast lookup (array for small contexts,
          hash table for larger contexts). 
      
        * Implement C++ qualified name lookup in terms of lookup into
          DeclContext.
      
        * Implement C++ unqualified name lookup in terms of
          qualified+unqualified name lookup (since unqualified lookup is not
          purely lexical in C++!)
      
        * Limit the use of the chains of declarations stored in
          IdentifierInfo to those names declared lexically.
      
        * Eliminate CXXFieldDecl, collapsing its behavior into
          FieldDecl. (FieldDecl is now a ScopedDecl).
      
        * Make RecordDecl into a DeclContext and eliminates its
          Members/NumMembers fields (since one can just iterate through the
          DeclContext to get the fields).
      
      llvm-svn: 60878
      91f84216
  10. Nov 24, 2008
  11. Nov 20, 2008
  12. Nov 19, 2008
  13. Oct 27, 2008
  14. Aug 18, 2008
  15. Aug 11, 2008
    • Daniel Dunbar's avatar
      More #include cleaning · 56fdb6ae
      Daniel Dunbar authored
       - Kill unnecessary #includes in .cpp files. This is an automatic
         sweep so some things removed are actually used, but happen to be
         included by a previous header. I tried to get rid of the obvious
         examples and this was the easiest way to trim the #includes in one
         fell swoop.
       - We now return to regularly scheduled development.
      
      llvm-svn: 54632
      56fdb6ae
    • Daniel Dunbar's avatar
      Minor #include cleaning · 34fb6727
      Daniel Dunbar authored
       - Drop TokenKinds.h from Action.h
       - Move DeclSpec.h from Sema.h into individual Sema .cpp files
      
      llvm-svn: 54625
      34fb6727
  16. Aug 10, 2008
  17. Aug 04, 2008
    • Chris Lattner's avatar
      · 7adf0760
      Chris Lattner authored
      Finally fix PR2189.  This makes a fairly invasive but important change to
      move getAsArrayType into ASTContext instead of being a method on type.
      This is required because getAsArrayType(const AT), where AT is a typedef
      for "int[10]" needs to return ArrayType(const int, 10).
      
      Fixing this greatly simplifies getArrayDecayedType, which is a good sign.
      
      llvm-svn: 54317
      7adf0760
  18. Jun 10, 2008
    • Argyrios Kyrtzidis's avatar
      -Changes to TagDecl: · 554a07ba
      Argyrios Kyrtzidis authored
        Added TagKind enum.
        Added getTagKind() method.
        Added convenience methods: isEnum(), isStruct(), isUnion(), isClass().
      -RecordDecl/CXXRecordDecl::Create() accept a TagKind enum instead of a DeclKind one.
      
      llvm-svn: 52160
      554a07ba
  19. Jun 09, 2008
  20. May 25, 2008
  21. May 20, 2008
  22. May 19, 2008
Loading