| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 86968
|
|
|
|
| |
llvm-svn: 86967
|
|
|
|
|
|
| |
logic should be done in PostVisitCallExpr()
llvm-svn: 86959
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 86957
|
|
|
|
| |
llvm-svn: 86956
|
|
|
|
|
|
| |
CallExprs. No clients (yet).
llvm-svn: 86949
|
|
|
|
|
|
| |
and was easily inlined.
llvm-svn: 86948
|
|
|
|
|
|
| |
a using declaration.
llvm-svn: 86942
|
|
|
|
|
|
| |
Also, always give errors on a token-cache PTH failure.
llvm-svn: 86939
|
|
|
|
| |
llvm-svn: 86932
|
|
|
|
| |
llvm-svn: 86931
|
|
|
|
| |
llvm-svn: 86915
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
and give that category an explicit test. Generalize the internal diagnostic
name.
llvm-svn: 86905
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
in the predefines buffer.
llvm-svn: 86903
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
the -Wconversion check.
llvm-svn: 86891
|
|
|
|
|
|
|
| |
either both synthesized or bith user defined.
Implements radar 6557233.
llvm-svn: 86887
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
not doing this has little to no utility.
llvm-svn: 86883
|
|
|
|
|
|
| |
should probably always own the header search object, but I'm not sure...
llvm-svn: 86882
|
|
|
|
| |
llvm-svn: 86881
|
|
|
|
|
|
| |
CompilerInvocation and clang-cc.
llvm-svn: 86880
|
|
|
|
| |
llvm-svn: 86879
|
|
|
|
| |
llvm-svn: 86878
|
|
|
|
|
|
| |
overflow logic in GRExprEngineInternalChecks.cpp.
llvm-svn: 86877
|
|
|
|
|
|
| |
Sorry about that.
llvm-svn: 86869
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
increase sanity. No intended functionality change.
llvm-svn: 86866
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
template template parameter, substitute any prior template arguments
into the template template parameter. This, for example, allows us to
properly check the template template argument for a class such as:
template<typename T, template<T Value> class X> struct Foo;
The actual implementation of this feature was trivial; most of the
change is dedicated to giving decent diagnostics when this
substitution goes horribly wrong. We now get a note like:
note: while substituting prior template arguments into template
template parameter 'X' [with T = float]
As part of this change, enabled some very pedantic checking when
comparing template template parameter lists, which shook out a bug in
our overly-eager checking of default arguments of template template
parameters. We now perform only minimal checking of such default
arguments when they are initially parsed.
llvm-svn: 86864
|
|
|
|
|
|
| |
violation.
llvm-svn: 86863
|
|
|
|
|
|
| |
identifying beginning of function body. Instead, create new location to attach with llvm.dbg.declare. This location is only used to find the context of the variable by the code generator, and it is not used to emit line number info.
llvm-svn: 86862
|
|
|
|
|
|
| |
initializer list. Fixes PR5463.
llvm-svn: 86849
|
|
|
|
|
|
|
|
|
| |
template<typename T>
struct X {
template<template<T Value> class Y> struct Inner;
};
llvm-svn: 86844
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
nested-name-specifiers so that they don't gobble the template name (or
operator-function-id) unless there is also a
template-argument-list. For example, given
T::template apply
we would previously consume both "template" and "apply" as part of
parsing the nested-name-specifier, then error when we see that there
is no "<" starting a template argument list. Now, we parse such
constructs tentatively, and back off if the "<" is not present. This
allows us to parse dependent template names as one would use them for,
e.g., template template parameters:
template<typename T, template<class> class X = T::template apply>
struct MetaSomething;
Also, test default arguments for template template parameters.
llvm-svn: 86841
|
|
|
|
| |
llvm-svn: 86837
|
|
|
|
| |
llvm-svn: 86836
|
|
|
|
|
|
| |
Now only one test case is XFAIL'ed.
llvm-svn: 86834
|
|
|
|
|
|
|
|
| |
explicitly.
Fix 80-col violations.
llvm-svn: 86833
|
|
|
|
|
|
| |
clang-cc/Options.cpp
llvm-svn: 86828
|
|
|
|
|
|
| |
mode.
llvm-svn: 86827
|
|
|
|
|
|
| |
InitializeCompileOptions.
llvm-svn: 86826
|
|
|
|
| |
llvm-svn: 86823
|
|
|
|
| |
llvm-svn: 86822
|
|
|
|
|
|
| |
determine if a pointer is casted to a struct pointer. This fixes an observed false positive when a value is casted to a union.
llvm-svn: 86813
|
|
|
|
|
|
| |
resetting the flag indicating that the current Decl* has not yet been displayed. Also move this out of AnalysisManager, since AnalysisManager should not handle text output to the user.
llvm-svn: 86812
|
|
|
|
|
|
| |
BadCallChecker, making their implementations completely private.
llvm-svn: 86809
|