Skip to content
  1. Jan 28, 2009
    • Daniel Dunbar's avatar
      Implement basic _Complex integer constant folding. · f50e60b2
      Daniel Dunbar authored
       - Merged into single ComplexEvaluator, these share too much logic to
         be worth splitting for float/int (IMHO). Will split on request.
      
      llvm-svn: 63248
      f50e60b2
    • 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
  2. Jan 25, 2009
  3. Jan 24, 2009
  4. Jan 18, 2009
  5. Jan 17, 2009
  6. Jan 12, 2009
  7. Jan 06, 2009
    • Douglas Gregor's avatar
      Add QualifiedDeclRefExpr, which retains additional source-location · c7acfdfe
      Douglas Gregor authored
      information for declarations that were referenced via a qualified-id,
      e.g., N::C::value. We keep track of the location of the start of the
      nested-name-specifier. Note that the difference between
      QualifiedDeclRefExpr and DeclRefExpr does have an effect on the
      semantics of function calls in two ways:
        1) The use of a qualified-id instead of an unqualified-id suppresses
           argument-dependent lookup
        2) If the name refers to a virtual function, the qualified-id
        version will call the function determined statically while the
        unqualified-id version will call the function determined dynamically
        (by looking up the appropriate function in the vtable).
      
      Neither of these features is implemented yet, but we do print out
      qualified names for QualifiedDeclRefExprs as part of the AST printing.
      
      llvm-svn: 61789
      c7acfdfe
  8. Dec 21, 2008
  9. Dec 12, 2008
  10. Dec 11, 2008
    • 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
  11. Dec 01, 2008
  12. Nov 25, 2008
  13. Nov 22, 2008
  14. Nov 17, 2008
  15. Nov 16, 2008
  16. Nov 15, 2008
  17. Nov 11, 2008
  18. Oct 27, 2008
  19. Oct 21, 2008
  20. Oct 12, 2008
  21. Oct 06, 2008
  22. Aug 25, 2008
  23. Aug 23, 2008
  24. Aug 19, 2008
  25. Aug 16, 2008
  26. Aug 14, 2008
    • Daniel Dunbar's avatar
      Add GetAddrOfConstantCString method · c4baa06d
      Daniel Dunbar authored
       - Returns addr of constant for argument + '\0'.
       - I couldn't think of a better name.
       - Move appropriate users of GetAddrOfConstantString to this.
      
      Rename getStringForStringLiteral to GetStringForStringLiteral.
      
      Add GetAddrOfConstantStringFromLiteral
       - This combines GetAddrOfConstantString and
         GetStringForStringLiteral. This method can be, but is not yet, more
         efficient.
      
      Change GetAddrOfConstantString to not add terminating '\0'
       - <rdar://problem/6140956>
      
      llvm-svn: 54768
      c4baa06d
  27. Aug 13, 2008
  28. Aug 12, 2008
    • Daniel Dunbar's avatar
      Add ObjC constant string support for NeXT. · 8b8683f9
      Daniel Dunbar authored
      Changed CGObjCRuntime::GenerateConstantString interface to take
             std::string instead of char* and size.
      
      Change ObjC functions which call on GenerateConstantString to bitcast
             result to appropriate type.
      
      llvm-svn: 54659
      8b8683f9
  29. Aug 11, 2008
  30. Aug 10, 2008
Loading