Skip to content
  1. Jul 02, 2011
  2. Jul 01, 2011
    • Douglas Gregor's avatar
      Emit guard variables for any weak global that has a run-time · fa918f69
      Douglas Gregor authored
      initializer. Previously, we only used guard variables for weak static
      data members. Fixes <rdar://problem/9692249>.
      
      llvm-svn: 134266
      fa918f69
    • Douglas Gregor's avatar
      When adding boolean keywords for typo correction, add either "bool" or · 3b22a884
      Douglas Gregor authored
      "_Bool" (depending on dialect), but not both, since they have the same
      edit distance from "Bool".
      
      llvm-svn: 134263
      3b22a884
    • Douglas Gregor's avatar
      Fix testcase · c063ac20
      Douglas Gregor authored
      llvm-svn: 134262
      c063ac20
    • Douglas Gregor's avatar
      Don't zero-initialize default-initialized local variables that have · 82e1af20
      Douglas Gregor authored
      trivial default constructors. This generated-code regression was
      caused by r131796, which had simplified the handling of default
      initialization in Sema. Fixes <rdar://problem/9694300>.
      
      llvm-svn: 134260
      82e1af20
    • Richard Trieu's avatar
      For code such as: · 94942b32
      Richard Trieu authored
      int f(int x) {
        if (int foo = f(bar)) {}
        return 0;
      }
      
      Clang produces the following error messages:
      
      paren_imbalance.cc:2:19: error: use of undeclared identifier 'bar'
        if (int foo = f(bar)) {}
                        ^
      paren_imbalance.cc:2:26: error: expected ')'
        if (int foo = f(bar)) {}
                              ^
      paren_imbalance.cc:2:6: note: to match this '('
        if (int foo = f(bar)) {}
           ^
      
      The second error is incorrect.  This patch will stop Clang from producing an error on parenthesis imbalance during error recovery when there isn't one.
      
      llvm-svn: 134258
      94942b32
    • Richard Trieu's avatar
      Fix for PR7410. Allow functions in a derived class that improperly overwrite a... · 95d88093
      Richard Trieu authored
      Fix for PR7410. Allow functions in a derived class that improperly overwrite a virtual function in the base class to be inserted into the derived class function list to prevent extra errors every time the derived class is used.
      
      llvm-svn: 134251
      95d88093
    • Richard Smith's avatar
      Fix AST representations of alias-declarations which define tag types. Inside... · cd1c0555
      Richard Smith authored
      Fix AST representations of alias-declarations which define tag types. Inside classes, the tag types need to have an associated access specifier, and inside function definitions, they need to be included in the declarations of the DeclStmt. These issues manifested as assertions during template instantiation, and also in a WIP constexpr patch.
      
      llvm-svn: 134250
      cd1c0555
    • Douglas Gregor's avatar
      When we create a precompiled preamble, don't copy the · 3cc15810
      Douglas Gregor authored
      CompilerInvocation on the stack, because other objects (e.g., the
      CompilerInstance) maintain an intrusive reference-counted pointer to
      the CompilerInvocation. This doesn't matter in the normal case,
      because we take back the CompilerInvocation. However, during crash
      recovery, this leads to us trying to free an object on the stack, and
      hilarity ensues. Fixes <rdar://problem/9652540>.
      
      llvm-svn: 134245
      3cc15810
    • Douglas Gregor's avatar
      Remove reference to the Index library · c2e40fa6
      Douglas Gregor authored
      llvm-svn: 134238
      c2e40fa6
    • John McCall's avatar
      Just mangle substituted template parameter types as unresolved types. · 2de1c33f
      John McCall authored
      This is kindof questionable but seems to do more-or-less the right thing.
      This is not a particularly friendly part of the ABI.
      
      llvm-svn: 134227
      2de1c33f
    • Douglas Gregor's avatar
      Introduce the notion of instantiation dependence into Clang's AST. A · 678d76c0
      Douglas Gregor authored
      type/expression/template argument/etc. is instantiation-dependent if
      it somehow involves a template parameter, even if it doesn't meet the
      requirements for the more common kinds of dependence (dependent type,
      type-dependent expression, value-dependent expression).
      
      When we see an instantiation-dependent type, we know we always need to
      perform substitution into that instantiation-dependent type. This
      keeps us from short-circuiting evaluation in places where we
      shouldn't, and lets us properly implement C++0x [temp.type]p2.
      
      In theory, this would also allow us to properly mangle
      instantiation-dependent-but-not-dependent decltype types per the
      Itanium C++ ABI, but we aren't quite there because we still mangle
      based on the canonical type in cases like, e.g.,
      
        template<unsigned> struct A { };
        template<typename T>
          void f(A<sizeof(sizeof(decltype(T() + T())))>) { }
        template void f<int>(A<sizeof(sizeof(int))>);
      
      and therefore get the wrong answer.
      
      llvm-svn: 134225
      678d76c0
    • John McCall's avatar
      Change the mangling of enclosing template template parameters · 3a4a4c52
      John McCall authored
      that serve as the base template name of an unresolved-name to
      be mangled as a substitution.
      
      llvm-svn: 134213
      3a4a4c52
  3. Jun 30, 2011
Loading