Skip to content
  1. Apr 05, 2009
  2. Apr 04, 2009
  3. Apr 03, 2009
  4. Apr 02, 2009
  5. 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
  6. Mar 31, 2009
  7. Mar 30, 2009
  8. Mar 29, 2009
  9. Mar 28, 2009
Loading