Skip to content
  1. Nov 29, 2009
  2. Sep 09, 2009
  3. Mar 02, 2009
  4. Feb 17, 2009
  5. Jan 17, 2009
  6. Nov 19, 2008
  7. Nov 18, 2008
    • Chris Lattner's avatar
      This reworks some of the Diagnostic interfaces a bit to change how diagnostics · 8488c829
      Chris Lattner authored
      are formed.  In particular, a diagnostic with all its strings and ranges is now
      packaged up and sent to DiagnosticClients as a DiagnosticInfo instead of as a 
      ton of random stuff.  This has the benefit of simplifying the interface, making
      it more extensible, and allowing us to do more checking for things like access
      past the end of the various arrays passed in.
      
      In addition to introducing DiagnosticInfo, this also substantially changes how 
      Diagnostic::Report works.  Instead of being passed in all of the info required
      to issue a diagnostic, Report now takes only the required info (a location and 
      ID) and returns a fresh DiagnosticInfo *by value*.  The caller is then free to
      stuff strings and ranges into the DiagnosticInfo with the << operator.  When
      the dtor runs on the DiagnosticInfo object (which should happen at the end of
      the statement), the diagnostic is actually emitted with all of the accumulated
      information.  This is a somewhat tricky dance, but it means that the 
      accumulated DiagnosticInfo is allowed to keep pointers to other expression 
      temporaries without those pointers getting invalidated.
      
      This is just the minimal change to get this stuff working, but this will allow
      us to eliminate the zillions of variant "Diag" methods scattered throughout
      (e.g.) sema.  For example, instead of calling:
      
        Diag(BuiltinLoc, diag::err_overload_no_match, typeNames,
             SourceRange(BuiltinLoc, RParenLoc));
      
      We will soon be able to just do:
      
        Diag(BuiltinLoc, diag::err_overload_no_match)
            << typeNames << SourceRange(BuiltinLoc, RParenLoc));
      
      This scales better to support arbitrary types being passed in (not just 
      strings) in a type-safe way.  Go operator overloading?!
      
      llvm-svn: 59502
      8488c829
    • Chris Lattner's avatar
      Change the diagnostics interface to take an array of pointers to · 16ba9139
      Chris Lattner authored
      strings instead of array of strings.  This reduces string copying
      in some not-very-important cases, but paves the way for future 
      improvements.
      
      llvm-svn: 59494
      16ba9139
  8. Oct 24, 2008
  9. Sep 11, 2008
  10. Aug 11, 2008
    • Daniel Dunbar's avatar
      More #include cleaning · 56fdb6ae
      Daniel Dunbar authored
       - Kill unnecessary #includes in .cpp files. This is an automatic
         sweep so some things removed are actually used, but happen to be
         included by a previous header. I tried to get rid of the obvious
         examples and this was the easiest way to trim the #includes in one
         fell swoop.
       - We now return to regularly scheduled development.
      
      llvm-svn: 54632
      56fdb6ae
  11. Aug 06, 2008
  12. Dec 29, 2007
  13. Dec 12, 2007
    • Ted Kremenek's avatar
      TargetInfo no longer includes a reference to SourceManager. · 1daa3cfb
      Ted Kremenek authored
      Moved all clients of Diagnostics to use FullSourceLoc instead of SourceLocation.
      Added many utility methods to FullSourceLoc to provide shorthand for:
      
          FullLoc.getManager().someMethod(FullLoc.getLocation());
          
      instead we have:
      
          FullLoc.someMethod();
          
      Modified TextDiagnostics (and related classes) to use this short-hand.
      
      llvm-svn: 44957
      1daa3cfb
  14. Dec 11, 2007
    • Ted Kremenek's avatar
      Modified the internals of Diagnostic and DiagnosticClient to use · 89fbadd3
      Ted Kremenek authored
      SourceManager*'s instead of SourceManager&'s. This allows the client specify a
      NULL SourceManager when using a default constructed SourceLocation. Thus the
      SourceManager can be NULL when the SourceLocation's isValid() == false.
      
      The interface to most clients of Diagnostic remains the same.
      Diagnostic::Report() is overload to either accept a SourceLocation and a
      SourceManager&, or neither. Thus clients that do not have a SourceManager
      cannot specify a SourceLocation.
      
      Modified TextDiagnostics* to use this new interface.
      Modified the driver to not passed in SourceManager when warning about "-I-".
      
      llvm-svn: 44887
      89fbadd3
    • Ted Kremenek's avatar
      Mega-patch: ripped SourceManager out of Diagnostic/DiagnosticClient. Now · d4e5fbac
      Ted Kremenek authored
      SourceManager is passed by reference, allowing the SourceManager to be
      associated with a specific translation unit, and not the entire execution
      of the driver.
      
      Modified all users of Diagnostics to comply with this new interface.
      
      Integrated SourceManager as a member variable of TargetInfo. TargetInfo will
      eventually be associated with a single translation unit (just like
      SourceManager).
      
      Made the SourceManager reference in ASTContext private. Provided accessor
      getSourceManager() for clients to use instead. Modified clients to comply with
      new interface.
      
      llvm-svn: 44878
      d4e5fbac
  15. Nov 30, 2007
  16. Jun 27, 2007
    • Bill Wendling's avatar
      Submitted by: Bill Wendling · 469211a2
      Bill Wendling authored
      Reviewed by: Chris Lattner
      
      - Added a new diagnostic client, TextDiagnosticBuffer. It buffers all
        reported diagnostics.
      - Use the new diagnostic client to check that expected diagnostics are
        actually emitted. The way this is done is to put the expected
        diagnostic in a comment on the line you expect it to be emitted for.
        Like this:
      
          int X = A; // expected-warning {{blah}}
      
      - Use -parse-ast-check to use this feature.
      
      llvm-svn: 39678
      469211a2
Loading