| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 83609
|
| |
|
|
|
|
| |
I still don't like it but it is improvement over what we had.
llvm-svn: 83603
|
| |
|
|
| |
llvm-svn: 83599
|
| |
|
|
|
|
|
|
| |
(compare was system dependent). Worked on Linux, failed on Mac OS (which caused the recently added testcase to fail on Linux).
- Sort results in testcase.
llvm-svn: 83597
|
| |
|
|
|
|
|
| |
existing MinGW headers, plus the newer 4.4.0 version. Patch by John
Thompson.
llvm-svn: 83594
|
| |
|
|
|
|
|
| |
handle the long size difference for one of the Windows targets." Patch
by John Thompson.
llvm-svn: 83592
|
| |
|
|
|
|
|
| |
to add a flag noting the presence of a Microsoft extension suffix (i8,
i16, i32, i64). Patch by John Thompson.
llvm-svn: 83591
|
| |
|
|
|
|
|
| |
because of missing default constructor of a member.
Fixes pr5154.
llvm-svn: 83583
|
| |
|
|
| |
llvm-svn: 83582
|
| |
|
|
| |
llvm-svn: 83579
|
| |
|
|
| |
llvm-svn: 83577
|
| |
|
|
|
|
| |
arguments to have proper location info.
llvm-svn: 83567
|
| |
|
|
| |
llvm-svn: 83562
|
| |
|
|
| |
llvm-svn: 83560
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
never want to defer generation of it, even if it is declared static.
With this change we're finally able to compile and run the (infamous)
#include <string>
#include <iostream>
int main(int argc, char **argv) {
std::cout << "Hello, World" << std::endl;
}
$ clang hello.cpp -lstdc++ -o hello
$ ./hello
Hello, World
llvm-svn: 83559
|
| |
|
|
| |
llvm-svn: 83557
|
| |
|
|
|
|
|
| |
Also, eliminate a redundant diagnostic by marking a variable declared
with incomplete type as an invalid declaration.
llvm-svn: 83553
|
| |
|
|
|
|
| |
functions.
llvm-svn: 83552
|
| |
|
|
|
|
|
|
| |
function and member function templates that are not definitions. Add
more tests to ensure that explicit specializations of member function
templates prevent instantiation.
llvm-svn: 83550
|
| |
|
|
|
|
|
|
|
|
|
| |
templates, and keep track of how those member classes were
instantiated or specialized.
Make sure that we don't try to instantiate an explicitly-specialized
member class of a class template, when that explicit specialization
was a declaration rather than a definition.
llvm-svn: 83547
|
| |
|
|
|
|
|
|
| |
track of the kind of specialization or instantiation. Also, check the
scope of the specialization and ensure that a specialization
declaration without an initializer is not a definition.
llvm-svn: 83533
|
| |
|
|
|
|
|
| |
template instantiation of a member function of a class template.
FIXME -= 2;
llvm-svn: 83520
|
| |
|
|
|
|
|
|
|
| |
specialization kind is TSK_ImplicitInstantiation. Previously, we would
end up implicitly instantiating functions that had explicit
specialization declarations or explicit instantiation declarations
(with no corresponding definitions).
llvm-svn: 83511
|
| |
|
|
|
|
|
|
|
| |
function of a class template was implicitly instantiated, explicitly
instantiated (declaration or definition), or explicitly
specialized. The same MemberSpecializationInfo structure will be used
for static data members and member classes as well.
llvm-svn: 83509
|
| |
|
|
|
|
|
|
| |
enums.
Don't create a new declaration for friend classes if a declaration already exists.
llvm-svn: 83505
|
| |
|
|
|
|
|
|
| |
templates. Previously, these weren't handled as specializations at
all. The AST for representing these as specializations is still a work
in progress.
llvm-svn: 83498
|
| |
|
|
| |
llvm-svn: 83495
|
| |
|
|
| |
llvm-svn: 83492
|
| |
|
|
|
|
|
|
| |
where matching conversion types in base classes were still visible.
Plus refactoring and cleanup.
Added a test case.
llvm-svn: 83485
|
| |
|
|
| |
llvm-svn: 83473
|
| |
|
|
|
|
|
| |
convesion functions, look in base classes to.
(Removes a FIXME).
llvm-svn: 83472
|
| |
|
|
|
|
|
|
|
|
| |
its definition may be defined, including in a class.
Also, put in an assertion when trying to instantiate a class template
partial specialization of a member template, which is not yet
implemented.
llvm-svn: 83469
|
| |
|
|
|
|
| |
per Doug's obsevation.
llvm-svn: 83464
|
| |
|
|
| |
llvm-svn: 83451
|
| |
|
|
| |
llvm-svn: 83448
|
| |
|
|
| |
llvm-svn: 83443
|
| |
|
|
|
|
| |
keeping state, such as identifiers assigned to anonymous structs as well as scope encoding.
llvm-svn: 83442
|
| |
|
|
|
|
|
|
| |
malloc() traffic when adding successors/predecessors to a node. This was done by introducing BumpVector, which is essentially SmallVector with all memory being BumpPtrAllocated (this can certainly be cleaned up or moved into llvm/ADT).
This change yields a 1.8% speed increase when running the analyzer (with -analyzer-store=region) on a small benchmark file.
llvm-svn: 83439
|
| |
|
|
|
|
|
|
|
| |
declarations and explicit template instantiations, improving
diagnostics and making the code usable for function template
specializations (as well as class template specializations and partial
specializations).
llvm-svn: 83436
|
| |
|
|
| |
llvm-svn: 83433
|
| |
|
|
|
|
|
|
| |
Doug, please review. There is a FIXME in the test case with a question
which is unrelated to this patch (that is, error is issued
before set of builtins are added to the candidate list).
llvm-svn: 83429
|
| |
|
|
| |
llvm-svn: 83428
|
| |
|
|
|
|
| |
class offsets. Fix the code to handle virtual bases as well.
llvm-svn: 83426
|
| |
|
|
| |
llvm-svn: 83420
|
| |
|
|
| |
llvm-svn: 83419
|
| |
|
|
|
|
|
| |
explicit specializations can occur. Also, fix a minor recovery bug
where we should allow declarations coming from the parser to be NULL.
llvm-svn: 83416
|