Skip to content
  1. Feb 27, 2009
  2. Feb 26, 2009
  3. Feb 25, 2009
    • Ted Kremenek's avatar
      Add experimental logic in GRExprEngine::EvalEagerlyAssume() to handle · dc3f50fb
      Ted Kremenek authored
      expressions of the form: 'short x = (y != 10);' While we handle 'int x = (y !=
      10)' lazily, the cast to another integer type currently loses the symbolic
      constraint. Eager evaluation of the constraint causes the paths to bifurcate and
      eagerly evaluate 'y != 10' to a constant of 1 or 0. This should address
      <rdar://problem/6619921> until we have a better (more lazy approach) for
      handling promotions/truncations of symbolic integer values.
      
      llvm-svn: 65480
      dc3f50fb
    • Douglas Gregor's avatar
      Improve location information on "reused" class template specialization · 1e249f86
      Douglas Gregor authored
      decls. Test and document the semantic location of class template
      specialization definitions that occur within a scope enclosing the
      scope of the class template.
      
      llvm-svn: 65478
      1e249f86
    • Douglas Gregor's avatar
      Perform additional semantic checking of class template · f47b911f
      Douglas Gregor authored
      specializations. In particular:
      
        - Make sure class template specializations have a "template<>"
          header, and complain if they don't.
        - Make sure class template specializations are declared/defined
          within a valid context. (e.g., you can't declare a specialization
          std::vector<MyType> in the global namespace).
      
      llvm-svn: 65476
      f47b911f
    • Daniel Dunbar's avatar
      Temporarily disable clearing of insert point (to indicate unreachable · 4208835e
      Daniel Dunbar authored
      code) when calling noreturn functions; general expression emission
      isn't ready to do the right thing in all cases.
      
      llvm-svn: 65473
      4208835e
    • Daniel Dunbar's avatar
      Allow constant initializers to reference their defining decl. · 1cdbc540
      Daniel Dunbar authored
       - PR3662.
      
      llvm-svn: 65472
      1cdbc540
    • Daniel Dunbar's avatar
      Fold GeneraticStaticBlockVarDecl into callers. · a374e60e
      Daniel Dunbar authored
       - No functionality change.
      
      llvm-svn: 65470
      a374e60e
    • Douglas Gregor's avatar
      Implement parsing of nested-name-specifiers that involve template-ids, e.g., · 7f741127
      Douglas Gregor authored
        std::vector<int>::allocator_type
      
      When we parse a template-id that names a type, it will become either a
      template-id annotation (which is a parsed representation of a
      template-id that has not yet been through semantic analysis) or a
      typename annotation (where semantic analysis has resolved the
      template-id to an actual type), depending on the context. We only
      produce a type in contexts where we know that we only need type
      information, e.g., in a type specifier. Otherwise, we create a
      template-id annotation that can later be "upgraded" by transforming it
      into a typename annotation when the parser needs a type. This occurs,
      for example, when we've parsed "std::vector<int>" above and then see
      the '::' after it. However, it means that when writing something like
      this:
      
        template<> class Outer::Inner<int> { ... };
      
      We have two tokens to represent Outer::Inner<int>: one token for the
      nested name specifier Outer::, and one template-id annotation token
      for Inner<int>, which will be passed to semantic analysis to define
      the class template specialization.
      
      Most of the churn in the template tests in this patch come from an
      improvement in our error recovery from ill-formed template-ids.
      
      llvm-svn: 65467
      7f741127
    • Daniel Dunbar's avatar
      Pull COdeGenFunction::CreateStaticBlockVarDecl (just for creating the · 22a87f94
      Daniel Dunbar authored
      global variable) out of GenerateStaticBlockVarDecl. 
       - No intended functionality change.
       - Prep for some mild cleanups and PR3662.
      
      llvm-svn: 65466
      22a87f94
Loading