Skip to content
  1. Nov 24, 2010
  2. Nov 18, 2010
    • Argyrios Kyrtzidis's avatar
      Refactoring of Diagnostic class. · d0040648
      Argyrios Kyrtzidis authored
      -Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class.
      -DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units.
      -The rest of the state in Diagnostic object is considered related and tied to one translation unit.
      -Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a
         SourceLocation instead of a FullSourceLoc.
      -Reflect the changes to various interfaces.
      
      llvm-svn: 119730
      d0040648
  3. Nov 01, 2010
  4. Oct 31, 2010
  5. Oct 22, 2010
  6. Oct 14, 2010
  7. Oct 13, 2010
  8. Sep 22, 2010
    • Argyrios Kyrtzidis's avatar
      Implement -Wpadded and -Wpacked. · ca0d0cd3
      Argyrios Kyrtzidis authored
      -Wpadded warns when undesired padding is introduced in a struct. (rdar://7469556)
      -Wpacked warns if a struct is given the packed attribute, but the packed attribute has no effect
        on the layout or the size of the struct. Such structs may be mis-aligned for little benefit.
      
      The warnings are emitted at the point where layout is calculated, that is at RecordLayoutBuilder.
      To avoid calculating the layouts of all structs regardless of whether they are needed or not,
      I let the layouts be lazily constructed when needed. This has the disadvantage that the above warnings
      will be emitted only when they are used for IR gen, and not e.g with -fsyntax-only:
      
      $ cat t.c
      struct S {
        char c;
        int i;
      };
      void f(struct S* s) {}
      
      $ clang -fsyntax-only -Wpadded t.c
      $ clang -c -Wpadded t.c -o t.o
      t.c:3:7: warning: padding struct 'struct S' with 3 bytes to align 'i' [-Wpadded]
        int i;
            ^
      1 warning generated.
      
      This is a good tradeoff between providing the warnings and not calculating layouts for all
      structs in case the user has enabled a couple of rarely used warnings.
      
      llvm-svn: 114544
      ca0d0cd3
  9. Aug 25, 2010
  10. Aug 23, 2010
  11. Aug 19, 2010
    • Charles Davis's avatar
      Add some enum goodness as requested by Chris. Now instead of storing the · 6bcb07ad
      Charles Davis authored
      active C++ ABI as a raw string, we store it as an enum. This should improve
      performance somewhat.
      
      And yes, this time, I started from a clean build directory, and
      all the tests passed. :)
      
      llvm-svn: 111507
      6bcb07ad
    • John McCall's avatar
      Restore the build · 1ed01824
      John McCall authored
      llvm-svn: 111498
      1ed01824
    • Charles Davis's avatar
      Add a special RecordLayoutBuilder for the Microsoft C++ ABI. · c2c576a9
      Charles Davis authored
      All it does right now is add space for two vtable pointers instead of one
      when a class has both virtual methods and virtual bases. This is a requirement
      of the Microsoft ABI, since it has separate vtables for methods and bases. Other
      stuff will come up over time, but we'll cross those bridges when we get to
      them.
      
      llvm-svn: 111493
      c2c576a9
    • Alexis Hunt's avatar
      Generate Attr subclasses with TableGen. · dcfba7b3
      Alexis Hunt authored
      Now all classes derived from Attr are generated from TableGen.
      Additionally, Attr* is no longer its own linked list; SmallVectors or
      Attr* are used. The accompanying LLVM commit contains the updates to
      TableGen necessary for this.
      
      Some other notes about newly-generated attribute classes:
      
       - The constructor arguments are a SourceLocation and a Context&,
         followed by the attributes arguments in the order that they were
         defined in Attr.td
      
       - Every argument in Attr.td has an appropriate accessor named getFoo,
         and there are sometimes a few extra ones (such as to get the length
         of a variadic argument).
      
      Additionally, specific_attr_iterator has been introduced, which will
      iterate over an AttrVec, but only over attributes of a certain type. It
      can be accessed through either Decl::specific_attr_begin/end or
      the global functions of the same name.
      
      llvm-svn: 111455
      dcfba7b3
  12. Aug 18, 2010
  13. Aug 15, 2010
  14. Jun 29, 2010
  15. Jun 13, 2010
  16. Jun 08, 2010
  17. May 30, 2010
  18. May 29, 2010
Loading