Skip to content
  1. Apr 09, 2009
  2. Apr 08, 2009
  3. Apr 07, 2009
  4. Apr 06, 2009
  5. Apr 05, 2009
  6. Apr 04, 2009
  7. Apr 03, 2009
  8. Apr 02, 2009
  9. Apr 01, 2009
    • Douglas Gregor's avatar
      Make parsing a semantic analysis a little more robust following Sema · fe3d7d08
      Douglas Gregor authored
      failures that involve malformed types, e.g., "typename X::foo" where
      "foo" isn't a type, or "std::vector<void>" that doens't instantiate
      properly.
      
      Similarly, be a bit smarter in our handling of ambiguities that occur
      in Sema::getTypeName, to eliminate duplicate error messages about
      ambiguous name lookup.
      
      This eliminates two XFAILs in test/SemaCXX, one of which was crying
      out to us, trying to tell us that we were producing repeated error
      messages.
      
      llvm-svn: 68251
      fe3d7d08
    • Steve Naroff's avatar
      CodeGenModule::GetAddrOfConstantCFString(): · 8d816d6c
      Steve Naroff authored
      - Finish up support for converting UTF8->UTF16 to support ObjC @"string" constants.
      
      Remove warning from CheckObjCString.
      
      As the FIXME in the test case indicates, I still have a bug to work out (apparently with \u handling).
      
      llvm-svn: 68245
      8d816d6c
    • Douglas Gregor's avatar
      Give Type::getDesugaredType a "for-display" mode that can apply more · 2e0757f3
      Douglas Gregor authored
      heuristics to determine when it's useful to desugar a type for display
      to the user. Introduce two C++-specific heuristics:
      
        - For a qualified type (like "foo::bar"), only produce a new
          desugred type if desugaring the qualified type ("bar", in this
          case) produces something interesting. For example, if "foo::bar"
          refers to a class named "bar", don't desugar. However, if
          "foo::bar" refers to a typedef of something else, desugar to that
          something else. This gives some useful desugaring such as
          "foo::bar (aka 'int')".
        - Don't desugar class template specialization types like
          "basic_string<char>" down to their underlying "class
          basic_string<char, char_traits<char>, allocator<char>>, etc.";
          it's better just to leave such types alone. 
      
      Update diagnostics.html with some discussion and examples of type
      preservation in C++, showing qualified names and class template
      specialization types.
      
      llvm-svn: 68207
      2e0757f3
    • Douglas Gregor's avatar
      Parsing, semantic analysis, and template instantiation for typename · dce2b62b
      Douglas Gregor authored
      specifiers that terminate in a simple-template-id, e.g.,
      
        typename MetaFun::template apply<T1, T2>
      
      Also, implement template instantiation for dependent
      nested-name-specifiers that involve unresolved identifiers, e.g.,
      
        typename T::type::type
      
      llvm-svn: 68166
      dce2b62b
  10. Mar 31, 2009
Loading