- Nov 12, 2009
-
-
Anders Carlsson authored
llvm-svn: 86996
-
Douglas Gregor authored
in "if" statements like: if (CanQual<ReferenceType> RefType = T.getAs<ReferenceType>()) Thanks to Clang for pointing out this mistake :) llvm-svn: 86995
-
Anders Carlsson authored
llvm-svn: 86994
-
Douglas Gregor authored
- Comparing template parameter lists to determine if we have a redeclaration - Comparing template parameter lists to determine if we have equivalent template template parameters - Comparing template parameter lists to determine whether a template template argument is valid for a given template template parameter. Previously, we did not distinguish between the last two cases, which got us into trouble when we were looking for exact type matches between the types of non-type template parameters that were dependent types. Now we do, so we properly delay checking of template template arguments until instantiation time. Also, fix an accidental fall-through in a case statement that was causing crashes. llvm-svn: 86992
-
Douglas Gregor authored
llvm-svn: 86989
-
Benjamin Kramer authored
llvm-svn: 86983
-
Zhongxing Xu authored
llvm-svn: 86979
-
Zhongxing Xu authored
llvm-svn: 86978
-
Chris Lattner authored
Ken Dyck! "This adds definitions for types of 8-bit multiples from 8 to 64 to stdint.h and rationalizes the selection of types for the exact-width definitions in InitPreprocessor.cpp." llvm-svn: 86977
-
Chris Lattner authored
into TargetInfo, just derive this based on the underlying type. This prevents them from getting out of synch, patch by Ken Dyck! llvm-svn: 86976
-
Daniel Dunbar authored
llvm-svn: 86968
-
Daniel Dunbar authored
llvm-svn: 86967
-
Ted Kremenek authored
PthreadLockChecker doesn't need PreVisitCallExpr() yet. All the current logic should be done in PostVisitCallExpr() llvm-svn: 86959
-
Ted Kremenek authored
Add most of the boilerplate logic for a simple pthread_mutux_lock() -> pthread_mutex_unlock() checker. We need to add a visitor method to Checker for handling dead symbols in order to detect locks that are not unlocked. llvm-svn: 86958
-
Ted Kremenek authored
llvm-svn: 86957
-
Rafael Espindola authored
llvm-svn: 86956
-
Ted Kremenek authored
Enhance Checker class (and GRExprEngine) to support PostVisitation for CallExprs. No clients (yet). llvm-svn: 86949
-
Ted Kremenek authored
llvm-svn: 86948
-
John McCall authored
a using declaration. llvm-svn: 86942
-
Daniel Dunbar authored
Also, always give errors on a token-cache PTH failure. llvm-svn: 86939
-
Zhongxing Xu authored
llvm-svn: 86932
-
John McCall authored
llvm-svn: 86931
-
Devang Patel authored
llvm-svn: 86915
-
Douglas Gregor authored
template template parameter. When building a template-id type, check whether the template-name itself is dependent (even if the template arguments are not!) and handle it as a template-id type. llvm-svn: 86913
-
John McCall authored
and give that category an explicit test. Generalize the internal diagnostic name. llvm-svn: 86905
-
Douglas Gregor authored
annotation token, because some of the tokens we're annotating might not be in the set of cached tokens (we could have consumed them unconditionally). Also, move the tentative parsing from ParseTemplateTemplateArgument into the one caller that needs it, improving recovery. llvm-svn: 86904
-
Daniel Dunbar authored
in the predefines buffer. llvm-svn: 86903
-
Douglas Gregor authored
permits, among other things, ripping apart and reconstructing templates via partial specialization: template<typename T> struct DeepRemoveConst { typedef T type; }; template<typename T> struct DeepRemoveConst<const T> { typedef typename DeepRemoveConst<T>::type type; }; template<template<typename> class TT, typename T> struct DeepRemoveConst<TT<T> > { typedef TT<typename DeepRemoveConst<T>::type> type; }; Also, fix a longstanding thinko in the code handling partial ordering of class template partial specializations. We were performing the second deduction without clearing out the results of the first deduction. It's amazing we got through so much code with such a horrendous error :( llvm-svn: 86893
-
- Nov 11, 2009
-
-
John McCall authored
the -Wconversion check. llvm-svn: 86891
-
Fariborz Jahanian authored
either both synthesized or bith user defined. Implements radar 6557233. llvm-svn: 86887
-
Douglas Gregor authored
with its corresponding template parameter. This can happen when we performed some substitution into the default template argument and what we had doesn't match any more, e.g., template<int> struct A; template<typename T, template<T> class X = A> class B; B<long> b; Previously, we'd emit a pretty but disembodied diagnostic showing how the default argument didn't match the template parameter. The diagnostic was good, but nothing tied it to the *use* of the default argument in "B<long>". This commit fixes that. Also, tweak the counting of active template instantiations to avoid counting non-instantiation records, such as those we create for (surprise!) checking default arguments, instantiating default arguments, and performing substitutions as part of template argument deduction. llvm-svn: 86884
-
Daniel Dunbar authored
not doing this has little to no utility. llvm-svn: 86883
-
Daniel Dunbar authored
Allow Preprocessor to take ownership of the HeaderSearch object. I think it should probably always own the header search object, but I'm not sure... llvm-svn: 86882
-
Daniel Dunbar authored
llvm-svn: 86881
-
Daniel Dunbar authored
CompilerInvocation and clang-cc. llvm-svn: 86880
-
Mike Stump authored
llvm-svn: 86879
-
Mike Stump authored
llvm-svn: 86878
-
Ted Kremenek authored
Remove some stale ErrorNodes variables in GRExprEngine and the old buffer overflow logic in GRExprEngineInternalChecks.cpp. llvm-svn: 86877
-
Chandler Carruth authored
Sorry about that. llvm-svn: 86869
-
Douglas Gregor authored
template-type-parameter specific template argument checking code and up to the template argument checking loop. In theory, this should make variadic templates work better; in practice, they don't well enough for us to care anyway (YET!), so this is mostly a re-organization to simplify CheckTemplateArgument. llvm-svn: 86868
-