Skip to content
  1. May 28, 2007
    • Chris Lattner's avatar
      Reorganize codegen files. · bed31446
      Chris Lattner authored
      llvm-svn: 39504
      bed31446
    • Chris Lattner's avatar
      Stop generating code after the first error is emitted. · 7a50aa98
      Chris Lattner authored
      llvm-svn: 39503
      7a50aa98
    • Chris Lattner's avatar
      track whether an error has been emitted. · c49b9051
      Chris Lattner authored
      llvm-svn: 39502
      c49b9051
    • Steve Naroff's avatar
      Bug #: · 9358c715
      Steve Naroff authored
      Submitted by:
      Reviewed by:
      - Added type checking to Sema::ParseReturnStmt (still under construction).
      - Improved Expr::isLvalue() and Expr::isModifiableLvalue() to return more
      info. Used the info in Sema::CheckAssignmentOperands() to produce more
      descriptive diagnostics. Added FIXME to other clients of isLvalue()/etc.
      - Added a SourceLocation slot to MemberExpr...changed the implementation
      of getSourceRange().
      - Added getResultType() helper to FunctionDecl.
      - Changed many Diag calls to use the SourceRange support (now that it's
      a big hit...we better milk it:-).
      
      llvm-svn: 39501
      9358c715
    • Bill Wendling's avatar
      Bug #: · c5fc5f19
      Bill Wendling authored
      Submitted by: Bill Wendling
      Reviewed by:
      
      - Can do just a 'cast<>()' because we're checking that it's Tagged.
      
      llvm-svn: 39500
      c5fc5f19
    • Bill Wendling's avatar
      Bug #: · 229f243f
      Bill Wendling authored
      Submitted by: Bill Wendling
      Reviewed by: Steve Naroff
      
      - Steve suggested avoiding the dyn_cast by using the "Tagged" type class
        and having the "default" just return false.
      
      llvm-svn: 39499
      229f243f
    • Bill Wendling's avatar
      Bug #: · 21862c3f
      Bill Wendling authored
      Submitted by: Bill Wendling
      Reviewed by: Chris Lattner
      
      - Rework the isDerivedType method so that if a language doesn't support
        references, it won't have to pay the price for them. This inlines the
        checks for derived types and turns it into a switch statement instead.
      
      llvm-svn: 39498
      21862c3f
  2. May 27, 2007
    • Bill Wendling's avatar
      Bug #: · 6811c0b5
      Bill Wendling authored
      Submitted by: Bill Wendling
      Reviewed by:
      
      C++ references testcase.
      
      llvm-svn: 39497
      6811c0b5
    • Bill Wendling's avatar
      Bug #: · 3708c185
      Bill Wendling authored
      Submitted by: Bill Wendling
      Reviewed by: Chris Lattner
      
      - Initial support for C++ references. Adding to the AST and Parser.
        Skeletal support added in the semantic analysis portion. Full semantic
        analysis is to be done soon.
      
      llvm-svn: 39496
      3708c185
  3. May 24, 2007
  4. May 23, 2007
    • Steve Naroff's avatar
      Bug #: · f84d11f9
      Steve Naroff authored
      Submitted by:
      Reviewed by:
      Added "global" statistics gathering for Decls/Stmts/Exprs.
      Very useful for working with a single file. When we start compiling
      multiple files, will need to enhance this to collect stats on a per-module
      basis.
      
      llvm-svn: 39485
      f84d11f9
    • Bill Wendling's avatar
      Bug #: · 5a85f910
      Bill Wendling authored
      Submitted by: Bill Wendling
      Reviewed by: Chris Lattner
      
      - Removed unneeded <iostream> header.
      
      llvm-svn: 39484
      5a85f910
    • Bill Wendling's avatar
      Bug #: · 48fbdd03
      Bill Wendling authored
      Submitted by: Bill Wendling
      Reviewed by: Chris Lattner
      
      - Changed "std::cerr" to "OS" stream to be consistent with the other
        outputs in the method.
      
      llvm-svn: 39483
      48fbdd03
    • Bill Wendling's avatar
      Bug #: · f0648703
      Bill Wendling authored
      Submitted by: Bill Wendling
      Reviewed by: Chris Lattner
      
      - Comment fix.
      
      llvm-svn: 39482
      f0648703
  5. May 22, 2007
    • Steve Naroff's avatar
      Bug #: · 7fd68933
      Steve Naroff authored
      Submitted by:
      Reviewed by:
      One bug compiling "Carbon.h" on Leopard, one diagnostic tweak.
      - CheckIndirectionOperand wasn't operating on the canonical type (so it
      was complaining about typedef names).
      - The diagnostic was less than great. Here's what is was:
      
      [dylan:~/llvm/tools/clang] admin% ../../Debug/bin/clang t.c
      t.c:4:3: error: invalid argument type to unary expression 'int'
       *p;
       ^~
      
      And here's what I changed it to...
      
      snaroff:clang naroff$ ../../Debug/bin/clang bug.c
      bug.c:5:3: error: indirection requires a pointer ('int' operand invalid)
        *p;
        ^~
      
      llvm-svn: 39481
      7fd68933
    • Steve Naroff's avatar
      Bug #: · 21d5e87a
      Steve Naroff authored
      Submitted by:
      Reviewed by:
      Add Makefile
      
      llvm-svn: 39480
      21d5e87a
  6. May 21, 2007
  7. May 20, 2007
    • Steve Naroff's avatar
      Bug #: · 30d1fbc8
      Steve Naroff authored
      Submitted by:
      Reviewed by:
      Bozo bug in last checkin. Needed to move the check for null pointers
      up (and out of the pointer/pointer clause).
      
      llvm-svn: 39466
      30d1fbc8
    • Chris Lattner's avatar
      Steve pointed out that testcases like this (with a macro expansion): · 5ab15f15
      Chris Lattner authored
      #define friendlystruct fs
      
        struct A { int X; };
      
        void test2(struct A friendlystruct, int C) {
          return friendlystruct + (C     *40);
        }
      
      were getting diagnosed like this:
      
      t.c:7:27: error: invalid operands to binary expression ('struct A' and 'int')
          return friendlystruct + (C     *40);
                 ~~             ^ ~~~~~~~~~~~
      
      The problem is that getCharacterData returns a pointer to the macro expansion,
      not to the macro instantiation.  Instead, use getLogicalLoc to get a pointer
      to the instatiation location, so we relex the macro id.  We now get:
      
      t.c:7:27: error: invalid operands to binary expression ('struct A' and 'int')
          return friendlystruct + (C     *40);
                 ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
      
      oooh ahh. :)
      
      llvm-svn: 39465
      5ab15f15
Loading