| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 83936
|
| |
|
|
| |
llvm-svn: 83934
|
| |
|
|
| |
llvm-svn: 83928
|
| |
|
|
|
|
|
|
| |
that the scope in which it is being declared is complete. Also, when
instantiating a member class template's ClassTemplateDecl, be sure to
delay type creation so that the resulting type is dependent. Ick.
llvm-svn: 83923
|
| |
|
|
| |
llvm-svn: 83913
|
| |
|
|
| |
llvm-svn: 83912
|
| |
|
|
|
|
|
|
| |
that are declarations (rather than definitions). Also, be sure to set
the access specifiers properly when instantiating the declarations of
member function templates.
llvm-svn: 83911
|
| |
|
|
| |
llvm-svn: 83910
|
| |
|
|
|
|
|
|
|
| |
conditions. Add a fixit to insert the parentheses. Also fix a very minor
possible memory leak in 'for' conditions.
Fixes PR 4876 and rdar://problem/7289172
llvm-svn: 83907
|
| |
|
|
| |
llvm-svn: 83900
|
| |
|
|
|
|
|
|
|
|
|
|
| |
successor and predecessor vectors, etc.
Speedup: when doing 'clang-cc -analyze -dump-cfg' (without actual printing, just
CFG building) on the amalgamated SQLite source (all of SQLite in one source
file), runtime reduced by 9%.
This fixes: <rdar://problem/7250745>
llvm-svn: 83899
|
| |
|
|
| |
llvm-svn: 83898
|
| |
|
|
|
|
|
| |
instantiation has already been required. To do so, keep track of the
point of instantiation for anything that can be instantiated.
llvm-svn: 83890
|
| |
|
|
|
|
| |
wip - To prune excessive reporting.
llvm-svn: 83889
|
| |
|
|
| |
llvm-svn: 83886
|
| |
|
|
| |
llvm-svn: 83883
|
| |
|
|
| |
llvm-svn: 83882
|
| |
|
|
|
|
| |
handle references correctly.
llvm-svn: 83880
|
| |
|
|
|
|
| |
canonical conversion types.
llvm-svn: 83869
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
user-defined type conversions, issue list of ambiguites in addition
to the diagnostic. So, clang now issues the following:
b.cpp:19:19: error: left hand operand to ->* must be a pointer to class compatible with the right hand operand, but is 'struct C1'
int i = c1->*pmf;
~~^
b.cpp:19:19: note: because of ambiguity in conversion of 'struct C1' to 'struct E *'
b.cpp:5:5: note: candidate function
operator E*();
^
b.cpp:11:5: note: candidate function
operator E*();
^
llvm-svn: 83862
|
| |
|
|
| |
llvm-svn: 83847
|
| |
|
|
|
|
| |
virtual call.
llvm-svn: 83816
|
| |
|
|
| |
llvm-svn: 83808
|
| |
|
|
| |
llvm-svn: 83800
|
| |
|
|
| |
llvm-svn: 83798
|
| |
|
|
|
|
| |
QualTypes.
llvm-svn: 83793
|
| |
|
|
| |
llvm-svn: 83766
|
| |
|
|
|
|
|
| |
Along the way, use RequireCompleteType when testing exception spec types.
Separate all the ugly spec stuff into its own file.
llvm-svn: 83764
|
| |
|
|
|
|
|
|
| |
default binding for regions. This allows us to simply a lot of code. A
further simplification could be done is that many methods of
regionstore can only work on Store instead of GRState.
llvm-svn: 83762
|
| |
|
|
|
|
| |
change.
llvm-svn: 83732
|
| |
|
|
|
|
| |
variable inside the block.
llvm-svn: 83729
|
| |
|
|
|
|
|
|
|
| |
assignment and initialization.
The exception specification of the assignee must be the same or a subset of the target. In addition, exception specifications on arguments and return types must be equivalent, but this is not implemented yet.
This currently produces two diagnostics for every invalid assignment/initialization, due to the diagnostic produced outside PerformImplicitConversion, e.g. in CheckSingleInitializer. I don't know how to suppress this; in any case I think it is the wrong place for a diagnostic, since there are other diagnostics produced inside the function. So I'm leaving it as it is for the moment.
llvm-svn: 83710
|
| |
|
|
|
|
|
| |
Split the various ambiguous result enumerators into their own enum. Tests
for most of C++ [namespace.qual].
llvm-svn: 83700
|
| |
|
|
| |
llvm-svn: 83694
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will improve error messages. For
struct B;
B f();
void g() {
f();
}
We now get
t.cpp:6:3: error: calling 'f' with incomplete return type 'struct B'
f();
^~~
t.cpp:3:3: note: 'f' declared here
B f();
^
t.cpp:1:8: note: forward declaration of 'struct B'
struct B;
^
llvm-svn: 83692
|
| |
|
|
| |
llvm-svn: 83686
|
| |
|
|
| |
llvm-svn: 83685
|
| |
|
|
|
|
|
|
|
|
|
| |
- Filter out unnamed declarations
- Filter out declarations whose names are reserved for the
implementation (e.g., __bar, _Foo)
- Place OVERLOAD: or COMPLETION: at the beginning of each
code-completion result, so we can easily separate them from other
compilation results.
llvm-svn: 83680
|
| |
|
|
| |
llvm-svn: 83676
|
| |
|
|
|
|
|
|
|
| |
users to
pass a LookupResult reference to lookup routines. Call out uses which assume a single
result.
llvm-svn: 83674
|
| |
|
|
|
|
|
|
| |
injected-class-name (e.g., when we're referring to other
specializations of the current class template). Make sure that we see
the template rather than the injected-class-name. Fixes PR4768.
llvm-svn: 83672
|
| |
|
|
| |
llvm-svn: 83666
|
| |
|
|
| |
llvm-svn: 83664
|
| |
|
|
| |
llvm-svn: 83663
|
| |
|
|
| |
llvm-svn: 83659
|
| |
|
|
| |
llvm-svn: 83652
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now we produce things like:
bug1.cpp:21:11: error: use of overloaded operator '->*' is ambiguous
int i = c->*pmf; // expected-error {{use of overloaded operator '->*' is ambiguous}} \
~^ ~~~
bug1.cpp:21:11: note: built-in candidate operator ->* ('struct A volatile *', 'int const struct A::*')
bug1.cpp:21:11: note: built-in candidate operator ->* ('struct A volatile *', 'int restrict struct A::*')
...
Still need to look at an issue (indicated as FIXME in the test case).
llvm-svn: 83650
|
| |
|
|
|
|
| |
operator's types.
llvm-svn: 83648
|
| |
|
|
| |
llvm-svn: 83611
|
| |
|
|
| |
llvm-svn: 83610
|