Skip to content
  1. Jul 02, 2009
    • Douglas Gregor's avatar
      Add support for retrieving the Doxygen comment associated with a given · c6d5edd2
      Douglas Gregor authored
      declaration in the AST. 
      
      The new ASTContext::getCommentForDecl function searches for a comment
      that is attached to the given declaration, and returns that comment, 
      which may be composed of several comment blocks.
      
      Comments are always available in an AST. However, to avoid harming
      performance, we don't actually parse the comments. Rather, we keep the
      source ranges of all of the comments within a large, sorted vector,
      then lazily extract comments via a binary search in that vector only
      when needed (which never occurs in a "normal" compile).
      
      Comments are written to a precompiled header/AST file as a blob of
      source ranges. That blob is only lazily loaded when one requests a
      comment for a declaration (this never occurs in a "normal" compile). 
      
      The indexer testbed now supports comment extraction. When the
      -point-at location points to a declaration with a Doxygen-style
      comment, the indexer testbed prints the associated comment
      block(s). See test/Index/comments.c for an example.
      
      Some notes:
        - We don't actually attempt to parse the comment blocks themselves,
        beyond identifying them as Doxygen comment blocks to associate them
        with a declaration.
        - We won't find comment blocks that aren't adjacent to the
        declaration, because we start our search based on the location of
        the declaration.
        - We don't go through the necessary hops to find, for example,
        whether some redeclaration of a declaration has comments when our
        current declaration does not. Similarly, we don't attempt to
        associate a \param Foo marker in a function body comment with the
        parameter named Foo (although that is certainly possible).
        - Verification of my "no performance impact" claims is still "to be
        done".
      
      llvm-svn: 74704
      c6d5edd2
    • Douglas Gregor's avatar
      Look through vector types when determining the base type of a type for... · 1554825e
      Douglas Gregor authored
      Look through vector types when determining the base type of a type for declarator printing. Bug found via the PCH tester
      
      llvm-svn: 74672
      1554825e
    • Fariborz Jahanian's avatar
      Use Destroy for member initializer list clean up. · 5c6af0a9
      Fariborz Jahanian authored
      Per Doug's comments. Doug please review.
      
      llvm-svn: 74666
      5c6af0a9
    • Ted Kremenek's avatar
      Minor code cleanup: pull variables into scope of 'if' statement, limiting their · 873db258
      Ted Kremenek authored
      actual lifetime to their logical lifetime.
      
      llvm-svn: 74665
      873db258
    • Douglas Gregor's avatar
      Fix PR 4489, a PCH crash during de-serialization. · e4d00dd7
      Douglas Gregor authored
      llvm-svn: 74664
      e4d00dd7
    • Ted Kremenek's avatar
      Add a FIXME to RegionStore, do some minor code cleanup, and get RegionStore to · 55e07efe
      Ted Kremenek authored
      pass misc-ps.m. Currently RegionStore/BasicStore don't do any special reasoning
      about clang-style vectors, so we should return UnknownVal (in all cases) when
      accessing their values via an array.
      
      llvm-svn: 74660
      55e07efe
    • Owen Anderson's avatar
      ecaeaa81
    • Douglas Gregor's avatar
      Keep track of more information within the template instantiation stack, e.g., · ff6cbdf8
      Douglas Gregor authored
      by distinguishing between substitution that occurs for template
      argument deduction vs. explicitly-specifiad template arguments. This
      is used both to improve diagnostics and to make sure we only provide
      SFINAE in those cases where SFINAE should apply.
      
      In addition, deal with the sticky issue where SFINAE only considers
      substitution of template arguments into the *type* of a function
      template; we need to issue hard errors beyond this point, as
      test/SemaTemplate/operator-template.cpp illustrates.
      
      llvm-svn: 74651
      ff6cbdf8
  2. Jul 01, 2009
  3. Jun 30, 2009
Loading