Skip to content
Snippets Groups Projects
  1. Apr 04, 2016
  2. Feb 13, 2016
  3. Feb 09, 2016
    • David Blaikie's avatar
      Simplify EnterTokenStream API to make it more robust for memory management · a3104319
      David Blaikie authored
      While this won't help fix things like the bug that r260219 addressed, it
      seems like good tidy up to have anyway.
      
      (it might be nice if "makeArrayRef" always produced a MutableArrayRef &
      let it decay to an ArrayRef when needed - then I'd use that for the
      MutableArrayRefs in this patch)
      
      If we had std::dynarray I'd use that instead of unique_ptr+size_t,
      ideally (but then it'd have to be threaded down through the Preprocessor
      all the way - no idea how painful that would be)
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@260246 91177308-0d34-0410-b5e6-96231b3b80d8
      a3104319
  4. Jan 12, 2016
  5. Oct 20, 2015
  6. Oct 12, 2015
  7. Jul 30, 2015
    • Hubert Tong's avatar
      Improved error recovery for _Pragma · b63b4d08
      Hubert Tong authored
      Summary:
      Currently, if the argument to _Pragma is not a parenthesised string
      literal, the bad token will be consumed, as well as the ')', if present.
      If additional bad tokens are passed to the _Pragma, this results in
      extra error messages which may distract from the true problem.
      
      The proposed patch causes all tokens to be consumed until the closing
      ')' or a new line, whichever is reached first.
      
      Reviewers: hfinkel, rsmith
      
      Subscribers: hubert.reinterpretcast, fraggamuffin, rnk, cfe-commits
      
      Differential Revision: http://reviews.llvm.org/D8308
      
      Patch by Rachel Craik!
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@243692 91177308-0d34-0410-b5e6-96231b3b80d8
      b63b4d08
  8. Jun 23, 2015
  9. Jun 22, 2015
  10. Jun 19, 2015
    • Douglas Gregor's avatar
      Introduced pragmas for audited nullability regions. · 109dad2d
      Douglas Gregor authored
      Introduce the clang pragmas "assume_nonnull begin" and "assume_nonnull
      end" in which we make default assumptions about the nullability of many
      unannotated pointers:
      
        - Single-level pointers are inferred to __nonnull
        - NSError** in a (function or method) parameter list is inferred to
          NSError * __nullable * __nullable.
        - CFErrorRef * in a (function or method) parameter list is inferred
          to CFErrorRef __nullable * __nullable.
        - Other multi-level pointers are never inferred to anything.
      
      Implements rdar://problem/19191042.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240156 91177308-0d34-0410-b5e6-96231b3b80d8
      109dad2d
  11. May 25, 2015
  12. May 01, 2015
  13. Apr 30, 2015
    • Richard Smith's avatar
      [modules] Stop trying to fake up a linear MacroDirective history. · 1f468121
      Richard Smith authored
      Modules builds fundamentally have a non-linear macro history. In the interest
      of better source fidelity, represent the macro definition information
      faithfully: we have a linear macro directive history within each module, and at
      any point we have a unique "latest" local macro directive and a collection of
      visible imported directives. This also removes the attendent complexity of
      attempting to create a correct MacroDirective history (which we got wrong
      in the general case).
      
      No functionality change intended.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@236176 91177308-0d34-0410-b5e6-96231b3b80d8
      1f468121
  14. Apr 23, 2015
  15. Mar 18, 2015
    • Yaron Keren's avatar
      Remove many superfluous SmallString::str() calls. · 9bd91b68
      Yaron Keren authored
      Now that SmallString is a first-class citizen, most SmallString::str()
      calls are not required. This patch removes a whole bunch of them, yet
      there are lots more.
      
      There are two use cases where str() is really needed:
      1) To use one of StringRef member functions which is not available in
      SmallString.
      2) To convert to std::string, as StringRef implicitly converts while 
      SmallString do not. We may wish to change this, but it may introduce
      ambiguity.
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@232622 91177308-0d34-0410-b5e6-96231b3b80d8
      9bd91b68
  16. Mar 08, 2015
  17. Nov 19, 2014
  18. Oct 20, 2014
    • Richard Smith's avatar
      [modules] Add support for #include_next. · ccaf6244
      Richard Smith authored
      #include_next interacts poorly with modules: it depends on where in the list of
      include paths the current file was found. Files covered by module maps are not
      found in include search paths when building the module (and are not found in
      include search paths when @importing the module either), so this isn't really
      meaningful. Instead, we fake up the result that #include_next *should* have
      given: find the first path that would have resulted in the given file being
      picked, and search from there onwards.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220177 91177308-0d34-0410-b5e6-96231b3b80d8
      ccaf6244
  19. Sep 12, 2014
  20. Aug 14, 2014
  21. Aug 07, 2014
    • Richard Smith's avatar
      Use -Rblah, not -Wblah, to control remark diagnostics. This was always the · 1bdad150
      Richard Smith authored
      intent when we added remark support, but was never implemented in the general
      case, because the first -R flags didn't need it. (-Rpass= had special handling
      to accomodate its argument.)
      
      -Rno-foo, -Reverything, and -Rno-everything can be used to turn off a remark,
      or to turn on or off all remarks. Per discussion on cfe-commits, -Weverything
      does not affect remarks, and -Reverything does not affect warnings or errors.
      
      The only "real" -R flag we have right now is -Rmodule-build; that flag is
      effectively renamed from -Wmodule-build to -Rmodule-build by this change.
      
      -Wpass and -Wno-pass (and their friends) are also renamed to -Rpass and
      -Rno-pass by this change; it's not completely clear whether we intended to have
      a -Rpass (with no =pattern), but that is unchanged by this commit, other than
      the flag name. The default pattern is effectively one which matches no passes.
      In future, we may want to make the default pattern be .*, so that -Reverything
      works for -Rpass properly.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215046 91177308-0d34-0410-b5e6-96231b3b80d8
      1bdad150
  22. Jul 25, 2014
  23. Jun 12, 2014
  24. Jun 10, 2014
  25. May 18, 2014
  26. May 02, 2014
  27. May 01, 2014
  28. Mar 11, 2014
  29. Feb 20, 2014
  30. Feb 13, 2014
  31. Dec 21, 2013
  32. Dec 04, 2013
  33. Nov 16, 2013
  34. Oct 02, 2013
  35. Sep 25, 2013
  36. Sep 14, 2013
Loading