Skip to content
  1. Jun 11, 2010
  2. Jun 09, 2010
  3. Jun 08, 2010
  4. May 31, 2010
  5. May 28, 2010
  6. May 26, 2010
  7. May 25, 2010
    • Douglas Gregor's avatar
      Improve code completion in failure cases in two ways: · 6da3db4a
      Douglas Gregor authored
        1) Suppress diagnostics as soon as we form the code-completion
        token, so we don't get any error/warning spew from the early
        end-of-file.
        2) If we consume a code-completion token when we weren't expecting
        one, go into a code-completion recovery path that produces the best
        results it can based on the context that the parser is in.
      
      llvm-svn: 104585
      6da3db4a
  8. May 17, 2010
    • Chris Lattner's avatar
      robustify the conflict marker stuff. Don't add 7 twice, which would · 467f6bcf
      Chris Lattner authored
      make it miss (invalid) things like:
      <<<<<<<
      >>>>>>>
      
      and crash if 
      
      <<<<<<< 
      
      was at the end of the line.  When we find a >>>>>>> that is not at the
      end of the line, make sure to reset Pos so we don't crash on something
      like:
      <<<<<<< >>>>>>>
      
      This isn't worth making testcases for, since each would require a new file.
      
      rdar://7987078 - signal 11 compiling "<<<<<<<<<<"
      
      llvm-svn: 103968
      467f6bcf
  9. May 16, 2010
  10. Apr 29, 2010
  11. Apr 20, 2010
  12. Apr 19, 2010
  13. Apr 17, 2010
  14. Apr 14, 2010
  15. Apr 13, 2010
  16. Apr 06, 2010
  17. Mar 31, 2010
  18. Mar 26, 2010
  19. Mar 23, 2010
  20. Mar 19, 2010
    • Douglas Gregor's avatar
      Robustify PreprocessingRecord slightly, by only creating macro · 8aaca67b
      Douglas Gregor authored
      instantiations when we have the corresponding macro definition and by
      removing macro definition information from our table when the macro is
      undefined. 
      
      llvm-svn: 99004
      8aaca67b
    • Douglas Gregor's avatar
      Implement serialization and lazy deserialization of the preprocessing · aae9224e
      Douglas Gregor authored
      record (which includes all macro instantiations and definitions). As
      with all lay deserialization, this introduces a new external source
      (here, an external preprocessing record source) that loads all of the
      preprocessed entities prior to iterating over the entities.
      
      The preprocessing record is an optional part of the precompiled header
      that is disabled by default (enabled with
      -detailed-preprocessing-record). When the preprocessor given to the
      PCH writer has a preprocessing record, that record is written into the
      PCH file. When the PCH reader is given a PCH file that contains a
      preprocessing record, it will be lazily loaded (which, effectively,
      implicitly adds -detailed-preprocessing-record). This is the first
      case where we have sections of the precompiled header that are
      added/removed based on a compilation flag, which is
      unfortunate. However, this data consumes ~550k in the PCH file for
      Cocoa.h (out of ~9.9MB), and there is a non-trivial cost to gathering
      this detailed preprocessing information, so it's too expensive to turn
      on by default. In the future, we should investigate a better encoding
      of this information.
      
      llvm-svn: 99002
      aae9224e
    • Douglas Gregor's avatar
      Make the preprocessing record a PPCallbacks subclass itself, · 7dc8722b
      Douglas Gregor authored
      eliminating the extra PopulatePreprocessingRecord object. This will
      become useful once we start writing the preprocessing record to
      precompiled headers.
      
      llvm-svn: 98966
      7dc8722b
    • Douglas Gregor's avatar
      Optionally store a PreprocessingRecord in the preprocessor itself, and · 7f6d60dc
      Douglas Gregor authored
      tie its creation to a CC1 flag -detailed-preprocessing-record.
      
      llvm-svn: 98963
      7f6d60dc
  21. Mar 18, 2010
    • Douglas Gregor's avatar
      Explicitly link macro instantiations to macro definitions in the · 78ae2481
      Douglas Gregor authored
      preprocessing record. Use that link with clang_getCursorReferenced()
      and clang_getCursorDefinition() to match instantiations of a macro to
      the definition of the macro.
      
      llvm-svn: 98842
      78ae2481
    • Douglas Gregor's avatar
      Introduce the notion of a "preprocessing record", which keeps track of · 065f8d11
      Douglas Gregor authored
      the macro definitions and macro instantiations that are found
      during preprocessing. Preprocessing records are *not* generated by
      default; rather, we provide a PPCallbacks subclass that hooks into the
      existing callback mechanism to record this activity.
      
      The only client of preprocessing records is CIndex, which keeps track
      of macro definitions and instantations so that they can be exposed via
      cursors. At present, only token annotation uses these facilities, and
      only for macro instantiations; both will change in the near
      future. However, with this change, token annotation properly annotates
      macro instantiations that do not produce any tokens and instantiations
      of macros that are later undef'd, improving our consistency.
      
      Preprocessing directives that are not macro definitions are still
      handled by clang_annotateTokens() via re-lexing, so that we don't have
      to track every preprocessing directive in the preprocessing record.
      
      Performance impact of preprocessing records is still TBD, although it
      is limited to CIndex and therefore out of the path of the main compiler.
      
      llvm-svn: 98836
      065f8d11
  22. Mar 17, 2010
  23. Mar 16, 2010
Loading