Anton Korobeynikov
555d04f615
Fix typo
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95664 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-09 16:50:54 +00:00
Anton Korobeynikov
0488124fb9
Clearify Qt status a bit
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95663 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-09 16:46:25 +00:00
Douglas Gregor
95e636cd19
Add Qt, CMake projects to the list of C++ projects we're working on compiling
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95662 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-09 16:36:17 +00:00
Douglas Gregor
57f1a00bf2
Update Clang C++ status, with a more project-centric focus.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95455 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-05 23:51:14 +00:00
Chris Lattner
c5a857fa56
comments shouldn't go in the AST, and we already make it easy
...
to go from a decl to the doc comments for it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-19 20:59:13 +00:00
Douglas Gregor
125cebdc35
Update C++ status page to reflect reality
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91541 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-16 16:23:48 +00:00
Douglas Gregor
d90e0eee43
Update C++ status
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89492 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-20 22:00:06 +00:00
Benjamin Kramer
31abe8ce85
Doug says this is medium done.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85592 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-30 14:54:38 +00:00
Benjamin Kramer
cec517bf75
cxx_status: fix some missing/wrong cells.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85591 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-30 14:41:58 +00:00
Fariborz Jahanian
a662e05287
Restored note on pointer to members with a pointer
...
to issue involved.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85409 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-28 18:06:53 +00:00
Fariborz Jahanian
4efd398b14
Removed a Note related to pointer to member functions which
...
does not seem to exist any longer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85405 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-28 17:25:01 +00:00
Douglas Gregor
268fb5bca1
Test
...
explicit-instantiation-declaration-after-explicit-instantiation-definition
errors. This wraps up explicit template instantiation for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85347 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-27 23:55:05 +00:00
Fariborz Jahanian
3a9f03d5ac
Updated, we support == and != builtins for member pointers.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84679 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-20 21:10:15 +00:00
Fariborz Jahanian
093709796c
Changes to reflect more pointer-to-member support.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84670 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-20 20:31:50 +00:00
Douglas Gregor
dcde1909f6
Give ourselves an A- on ASTs for explicit specializations, since they
...
aren't rich enough to reproduce the source accurately.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84012 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13 19:41:44 +00:00
Douglas Gregor
096ebfda90
Diagnose attempts to add default function arguments to a
...
specialization. This completes C++ [temp.expl.spec]!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83980 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13 17:02:54 +00:00
Sebastian Redl
e094fe8278
This ought to complete exception spec support. Man, am I glad.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83767 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 09:14:57 +00:00
Douglas Gregor
b656d88235
Tests for C++ [expr], from James Porter!
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83588 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-08 22:38:14 +00:00
Benjamin Kramer
0519b286c0
Fix typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83246 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-02 12:19:16 +00:00
Douglas Gregor
30a46b54f1
Update C++ status page
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83157 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-30 18:32:57 +00:00
Fariborz Jahanian
d8307b1033
Patch for AST representation for the implicit conversion to a function
...
reference/pointer. And a test case for code gen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83000 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-28 18:35:46 +00:00
Fariborz Jahanian
6826365294
Update for inherited conversion function support.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81865 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-15 16:15:23 +00:00
Fariborz Jahanian
0d36aa8c23
Status update related to code gen for type conversion
...
functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81373 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 20:00:07 +00:00
Douglas Gregor
4fe95f99a2
Don't generate any code for an explicit call to a trivial destructor.
...
Now that parsing, semantic analysis, and (I think) code generation of
pseudo-destructor expressions and explicit destructor calls works,
update the example-dynarray.cpp test to destroy the objects it
allocates and update the test to actually compile + link.
The code seems correct, but the Clang-compiled version dies with a
malloc error. Time to debug!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81025 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-04 19:04:08 +00:00
Douglas Gregor
464061a729
Update C++ status, since a bunch of the comments were out-of-date
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80954 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-03 21:51:43 +00:00
Douglas Gregor
c68afe2cbe
Improve template instantiation for member access expressions that
...
involve qualified names, e.g., x->Base::f. We now maintain enough
information in the AST to compare the results of the name lookup of
"Base" in the scope of the postfix-expression (determined at template
definition time) and in the type of the object expression.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80953 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-03 21:38:09 +00:00
Douglas Gregor
20b3e9918c
Implement support for equality comparisons (!=, ==) of member
...
pointers, by extending the "composite pointer type" logic to include
member pointer types.
Introduce test cases for member pointer comparisons, including those
that involve the builtin operator candidates implemented earlier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79925 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24 17:42:35 +00:00
Fariborz Jahanian
c141086bff
Updated statuc page to reflect recent implementations
...
of section 12 [special member functions]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79704 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-22 00:18:52 +00:00
Douglas Gregor
be1ad92798
Update Clang C++ status to better reflect what is implemented.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79695 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 23:27:46 +00:00
Douglas Gregor
65ec1fda47
Implement conversion function templates, along with the ability to use
...
template argument deduction from a conversion function (C++
[temp.deduct.conv]) with implicit conversions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79693 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 23:19:43 +00:00
Douglas Gregor
1e185d9737
We have fairly good support for namespaces, now. Namespace aliases are parsed correctly
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77900 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-02 18:22:38 +00:00
Sebastian Redl
9cc11e7003
Implement C++ semantics for C-style and functional-style casts. This regresses Clang extension conversions, like vectors, but allows conversions via constructors and conversion operators.
...
Add custom conversions to static_cast.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77076 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25 15:41:38 +00:00
Douglas Gregor
9c09b886c0
We now do complete semantic checking for unions
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76918 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-24 00:05:42 +00:00
Douglas Gregor
75b451eb31
Update C++ status to reflect progress on out-of-line definitions of class template members
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76917 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 23:58:15 +00:00
Douglas Gregor
00aeb52314
Implement the simple form of overload resolution used when taking the
...
address of an overloaded function (which may involve both functions
and function templates).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75069 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 23:33:52 +00:00
Douglas Gregor
4668509630
Update the C++ status table to better reflect our support for function overloading
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74997 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 10:03:09 +00:00
Douglas Gregor
69be8d60de
Improve argument-dependent lookup to find associated classes and
...
namespaces based on the template arguments of a class template
specialization type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74993 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 07:51:57 +00:00
Douglas Gregor
8fdc3c49e3
Template argument deduction from a call has improved a bit
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74966 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 23:12:18 +00:00
Douglas Gregor
4c9b68f70e
Add a Last Updated field to the C++ status page
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74387 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-27 19:33:58 +00:00
Douglas Gregor
b10d2fbe98
Make a note of improvements to function templates
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74360 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-27 00:08:54 +00:00
Anders Carlsson
3eb43a0f62
We now support decltype (as far as I know :)
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74127 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 22:10:19 +00:00
Anders Carlsson
e6510f1945
Nested classes are now complete.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74052 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 02:03:09 +00:00
Anders Carlsson
43f24e05ce
class.nested.type is done.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74034 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 00:32:04 +00:00
Douglas Gregor
7420c2dee7
Note that we've implemented the right angle brackets extension in C++0x
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73389 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 16:50:45 +00:00
Douglas Gregor
5e9f35c7cb
Update LLVM.
...
Implement support for C++ Substitution Failure Is Not An Error
(SFINAE), which says that errors that occur during template argument
deduction do *not* produce diagnostics and do not necessarily make a
program ill-formed. Instead, template argument deduction silently
fails. This is currently implemented for template argument deduction
during matching of class template partial specializations, although
the mechanism will also apply to template argument deduction for
function templates. The scheme is simple:
- If we are in a template argument deduction context, any diagnostic
that is considered a SFINAE error (or warning) will be
suppressed. The error will be propagated up the call stack via the
normal means.
- By default, all warnings and errors are SFINAE errors. Add the
NoSFINAE class to a diagnostic in the .td file to make it a hard
error (e.g., for access-control violations).
Note that, to make this fully work, every place in Sema that emits an
error *and then immediately recovers* will need to check
Sema::isSFINAEContext() to determine whether it must immediately
return an error rather than recovering.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73332 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 07:33:30 +00:00
Douglas Gregor
c1efb3faef
It looks like we've finished off matching of class template partial specializations; add comments and update the C++ status page
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73263 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 22:31:52 +00:00
Douglas Gregor
16df850bb7
Finish implementing checking of class template partial specializations
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73260 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 22:21:45 +00:00
Douglas Gregor
6aa75cfbdd
Diagnose C++ [temp.class.spec]p9b3, where a class template partial
...
specialization's arguments are identical to the implicit template
arguments of the primary template. Typically, this is meant to be a
declaration/definition of the primary template, so we give that
advice.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73259 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 22:08:06 +00:00
Douglas Gregor
7e8976b22e
Update the C++ status to reflect improvements in template argument deduction and the handling of class template partial specializations
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73242 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 19:15:38 +00:00
Douglas Gregor
93dfdb1299
Semantic analysis for explicit instantiation of class templates. We
...
still aren't instantiating the definitions of class template members,
and core issues 275 and 259 will both affect the checking that we do
for explicit instantiations (but are not yet implemented).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71613 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-13 00:25:59 +00:00