Skip to content
  1. Nov 28, 2009
  2. Feb 27, 2009
  3. Feb 26, 2009
    • Douglas Gregor's avatar
      Introduce code modification hints into the diagnostics system. When we · 87f95b0a
      Douglas Gregor authored
      know how to recover from an error, we can attach a hint to the
      diagnostic that states how to modify the code, which can be one of:
      
        - Insert some new code (a text string) at a particular source
          location
        - Remove the code within a given range
        - Replace the code within a given range with some new code (a text
          string)
      
      Right now, we use these hints to annotate diagnostic information. For
      example, if one uses the '>>' in a template argument in C++98, as in
      this code:
      
        template<int I> class B { };
        B<1000 >> 2> *b1;
      
      we'll warn that the behavior will change in C++0x. The fix is to
      insert parenthese, so we use code insertion annotations to illustrate
      where the parentheses go:
      
      test.cpp:10:10: warning: use of right-shift operator ('>>') in template
      argument will require parentheses in C++0x
        B<1000 >> 2> *b1;
               ^
          (        )
      
      
      Use of these annotations is partially implemented for HTML
      diagnostics, but it's not (yet) producing valid HTML, which may be
      related to PR2386, so it has been #if 0'd out.
      
      In this future, we could consider hooking this mechanism up to the
      rewriter to actually try to fix these problems during compilation (or,
      after a compilation whose only errors have fixes). For now, however, I
      suggest that we use these code modification hints whenever we can, so
      that we get better diagnostics now and will have better coverage when
      we find better ways to use this information.
      
      This also fixes PR3410 by placing the complaint about missing tokens
      just after the previous token (rather than at the location of the next
      token).
      
      llvm-svn: 65570
      87f95b0a
  4. Mar 16, 2008
    • Chris Lattner's avatar
      Make a major restructuring of the clang tree: introduce a top-level · 7a51313d
      Chris Lattner authored
      lib dir and move all the libraries into it.  This follows the main
      llvm tree, and allows the libraries to be built in parallel.  The
      top level now enforces that all the libs are built before Driver,
      but we don't care what order the libs are built in.  This speeds
      up parallel builds, particularly incremental ones.
      
      llvm-svn: 48402
      7a51313d
  5. Dec 29, 2007
  6. Oct 24, 2007
  7. Jun 16, 2007
    • Chris Lattner's avatar
      Finally bite the bullet and make the major change: split the clang namespace · 23b7eb67
      Chris Lattner authored
      out of the llvm namespace.  This makes the clang namespace be a sibling of
      llvm instead of being a child.
      
      The good thing about this is that it makes many things unambiguous.  The
      bad things is that many things in the llvm namespace (notably data structures
      like smallvector) now require an llvm:: qualifier.  IMO, libsystem and libsupport
      should be split out of llvm into their own namespace in the future, which will fix
      this issue.
      
      llvm-svn: 39659
      23b7eb67
  8. Dec 04, 2006
  9. Jun 18, 2006
Loading