Skip to content
  1. Oct 31, 2008
  2. Oct 30, 2008
  3. Oct 29, 2008
    • Douglas Gregor's avatar
      Implement overloading rules for reference binding · ef30a5ff
      Douglas Gregor authored
      llvm-svn: 58381
      ef30a5ff
    • Douglas Gregor's avatar
      Tweak Sema::CheckReferenceInit so that it (optionally) computes an · 786ab211
      Douglas Gregor authored
      ImplicitConversionSequence and, when doing so, following the specific
      rules of [over.best.ics]. 
      
      The computation of the implicit conversion sequences implements C++
      [over.ics.ref], but we do not (yet) have ranking for implicit
      conversion sequences that use reference binding.
      
      llvm-svn: 58357
      786ab211
    • Douglas Gregor's avatar
      Implement initialization of a reference (C++ [dcl.init.ref]) as part · 8e1cf608
      Douglas Gregor authored
      of copy initialization. Other pieces of the puzzle:
      
        - Try/Perform-ImplicitConversion now handles implicit conversions
          that don't involve references.
        - Try/Perform-CopyInitialization uses
          CheckSingleAssignmentConstraints for C. PerformCopyInitialization
          is now used for all argument passing and returning values from a
          function.
        - Diagnose errors with declaring references and const values without
          an initializer. (Uses a new Action callback, ActOnUninitializedDecl).
        
      We do not yet have implicit conversion sequences for reference
      binding, which means that we don't have any overloading support for
      reference parameters yet.
      
      llvm-svn: 58353
      8e1cf608
  4. Oct 23, 2008
  5. Oct 22, 2008
  6. Oct 21, 2008
  7. Oct 15, 2008
    • Argyrios Kyrtzidis's avatar
      Fix this bug: · 2e3e7563
      Argyrios Kyrtzidis authored
      typedef int f();
      struct S {
         f *x; // incorrectly assuming this is function decl, leading to failed assertions.
      };
      
      llvm-svn: 57598
      2e3e7563
  8. Oct 14, 2008
  9. Oct 09, 2008
    • Argyrios Kyrtzidis's avatar
      Fix a bug that crashed clang when parsing this: · 1207d319
      Argyrios Kyrtzidis authored
      class C {
        static const int number = 50;
        static int arr[number];
      };
      
      Here's how it worked:
      -GetTypeForDeclarator was called from both Sema::ActOnCXXMemberDeclarator and Sema::ActOnDeclarator.
      -VariableArrayTypes are not uniqued so two VariableArrayTypes were created with the same DeclRefExpr.
      -On exit they both tried to destroy that one DeclRefExpr.
      
      The fix is not to use GetTypeForDeclarator from the Sema::ActOnCXXMemberDeclarator.
      
      llvm-svn: 57313
      1207d319
  10. Oct 07, 2008
    • Argyrios Kyrtzidis's avatar
      Simplify handling of direct initializers by letting Sema::AddInitializerToDecl... · 997d00dd
      Argyrios Kyrtzidis authored
      Simplify handling of direct initializers by letting Sema::AddInitializerToDecl handle conversions, instead of using Sema::ActOnCXXTypeConstructExpr.
      Additional benefit is that diagnostics are the same for both direct-initialization and copy-initialization.
      
      In the case of "int x( expression );":
      -The Init expression of VarDecl 'x' will be the expression inside the parentheses.
      -VarDecl::hasCXXDirectInitializer for VarDecl 'x' will return true to let clients distinguish from "int x = expression ;".
      
      llvm-svn: 57219
      997d00dd
  11. Oct 06, 2008
  12. Oct 03, 2008
  13. Sep 10, 2008
  14. 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
    • Daniel Dunbar's avatar
      Minor #include cleaning · 34fb6727
      Daniel Dunbar authored
       - Drop TokenKinds.h from Action.h
       - Move DeclSpec.h from Sema.h into individual Sema .cpp files
      
      llvm-svn: 54625
      34fb6727
  15. Aug 09, 2008
  16. Aug 05, 2008
  17. Aug 01, 2008
  18. Jul 27, 2008
  19. Jul 01, 2008
  20. Jun 10, 2008
    • Argyrios Kyrtzidis's avatar
      -Changes to TagDecl: · 554a07ba
      Argyrios Kyrtzidis authored
        Added TagKind enum.
        Added getTagKind() method.
        Added convenience methods: isEnum(), isStruct(), isUnion(), isClass().
      -RecordDecl/CXXRecordDecl::Create() accept a TagKind enum instead of a DeclKind one.
      
      llvm-svn: 52160
      554a07ba
  21. Jun 06, 2008
  22. May 29, 2008
  23. May 10, 2008
    • Argyrios Kyrtzidis's avatar
      -Implement proper name lookup for namespaces. · fa8e15bf
      Argyrios Kyrtzidis authored
      -identifierResolver exposes an iterator interface to get all decls through the scope chain.
      -The semantic staff (checking IdentifierNamespace and Doug's checking for shadowed tags were moved out of IdentifierResolver and back into Sema. IdentifierResolver just gives an iterator for all reachable decls of an identifier.
      
      llvm-svn: 50923
      fa8e15bf
  24. May 07, 2008
  25. Apr 27, 2008
    • Argyrios Kyrtzidis's avatar
      Parsing of namespaces: · 08114898
      Argyrios Kyrtzidis authored
      -NamespaceDecl for the AST
      -Checks for name clashes between namespaces and tag/normal declarations.
      
      This commit doesn't implement proper name lookup for namespaces.
      
      llvm-svn: 50321
      08114898
  26. Apr 16, 2008
    • Steve Naroff's avatar
      Remove FileVarDecl and BlockVarDecl. They are replaced by... · 08899ff8
      Steve Naroff authored
      Remove FileVarDecl and BlockVarDecl. They are replaced by VarDecl::isBlockVarDecl() and VarDecl::isFileVarDecl().
      
      This is a fairly mechanical/large change. As a result, I avoided making any changes/simplifications that weren't directly related. I did break two Analysis tests. I also have a couple FIXME's in UninitializedValues.cpp. Ted, can you take a look? If the bug isn't obvious, I am happy to dig in and fix it (since I broke it).
      
      llvm-svn: 49748
      08899ff8
  27. Apr 13, 2008
Loading