Commit Graph

350 Commits

Author SHA1 Message Date
Richard Smith 0f0af19b05 [c++1z] N4295: fold-expressions.
This is a new form of expression of the form:

  (expr op ... op expr)

where one of the exprs is a parameter pack. It expands into

  (expr1 op (expr2onwards op ... op expr))

(and likewise if the pack is on the right). The non-pack operand can be
omitted; in that case, an empty pack gives a fallback value or an error,
depending on the operator.

llvm-svn: 221573
2014-11-08 05:07:16 +00:00
Richard Smith ee0a49c802 Update C++ status page to reflect that Clang 3.5 has released.
llvm-svn: 217609
2014-09-11 17:30:32 +00:00
Richard Smith 1b88632886 cxx_status: we did support some of C++14 in Clang 3.3.
llvm-svn: 216837
2014-08-31 04:18:54 +00:00
Richard Smith 20f3767f36 cxx_status: the name C++14 isn't provisional any more.
llvm-svn: 216836
2014-08-31 04:17:48 +00:00
Richard Smith 707e3ba37c [cxx_status] Minor wording tweaks.
llvm-svn: 211471
2014-06-22 16:00:05 +00:00
Richard Smith e114c3a3ba [cxx_status] Be a bit more precise.
llvm-svn: 211470
2014-06-22 15:56:23 +00:00
Richard Smith 7cebe465ef Fix dead link.
llvm-svn: 211469
2014-06-22 15:54:54 +00:00
Richard Smith 4a4b357c90 C++ status page: restore the convention of saying "SVN" until we reach a release.
llvm-svn: 211398
2014-06-20 20:35:42 +00:00
Richard Smith a32124a231 Be less bold.
llvm-svn: 211397
2014-06-20 20:34:03 +00:00
Richard Smith cf31c6b6f2 [C++1z] Add C++1z to the C++ status page.
llvm-svn: 211396
2014-06-20 20:33:10 +00:00
Richard Smith 7e34fbdaa0 Add two missing entries to the C++11 support page. Bump one relevant diagnostic
(for an integer too large for any signed type) from Warning to ExtWarn -- it's
ill-formed in C++11 and C99 onwards, and UB during translation in C89 and
C++98. Add diagnostic groups for two relevant diagnostics.

llvm-svn: 203974
2014-03-14 21:21:24 +00:00
Richard Smith d997cce05f Try to remove confusion about C++11 feature support:
* Explicitly say that we conform to the two N/A bullets that required no
   compiler changes.
 * Remove a library feature from our features list.

llvm-svn: 203964
2014-03-14 20:26:09 +00:00
Richard Smith 586cd94340 Add links to TSen from post-Issaquah mailing.
llvm-svn: 202882
2014-03-04 20:22:54 +00:00
Richard Smith efa20ae276 Remove transactional memory from c++ status page; there's no working paper for it yet.
llvm-svn: 201452
2014-02-15 00:48:38 +00:00
Richard Smith 78c7bbb430 Add some missing threes.
llvm-svn: 201449
2014-02-15 00:29:44 +00:00
Richard Smith 3a0ed87ed9 Add entries to C++ status page for Technical Specification Working Papers that
WG21 is about to vote on.

llvm-svn: 201448
2014-02-15 00:29:00 +00:00
Richard Smith 7fe896251d Clang 3.4 was released, make the boxes green.
llvm-svn: 200679
2014-02-03 06:58:08 +00:00
Richard Smith 3dd73db411 Move away from 'general' / 'generalized' as a way of identifying C++11
attribute syntax. There's nothing generalized about this; it's one of
several first-class attribute syntaxes we support, all of which are
more-or-less equally general.

As discussed on cfe-commits, we may want to revisit this if we start allowing
this syntax as an extension in C (or if C adopts the syntax), but hopefully
this diagnostic wording will be crystal clear to everyone in the mean time.

llvm-svn: 199443
2014-01-17 00:11:48 +00:00
Richard Smith 75a9a1a3c2 Update feature name "Generalized Attributes" to match the heading in the paper.
llvm-svn: 199177
2014-01-14 02:52:38 +00:00
Richard Smith e0cabb7756 Versions of GCC newer than 4.8 exist these days =)
llvm-svn: 196765
2013-12-09 08:55:59 +00:00
Richard Smith 6058634007 Minor cleanup and reorg of C++ status page.
llvm-svn: 196763
2013-12-09 08:52:23 +00:00
Alp Toker 05f894358a Add introductory paragraph to the C++ status page
Use internal links to provide easier access to recent and ongoing work.

Also shift up the order of standards in the page title in order to avoid web
search results focusing on C++98 in the summary.

This is done to highlight the modern standards support in clang that was
previously languishing at the bottom of the page.

  "C++98/03 is sooooo yesterday" - dgregor

llvm-svn: 196565
2013-12-06 06:35:49 +00:00
Richard Smith 28b1939849 Update C++ status from 'SVN' to 'Clang 3.4' in preparation for release. Leave
boxes yellow until we release, though.

llvm-svn: 196482
2013-12-05 07:52:05 +00:00
Richard Smith 91e474fc91 Add support for C++'s SD6 feature test macros.
llvm-svn: 195888
2013-11-27 22:58:16 +00:00
Richard Smith 76b9f23f2d Mark generic lambdas, and thus C++14, as complete. Add commented-out stub for C++17.
llvm-svn: 194194
2013-11-07 06:41:26 +00:00
Richard Smith 96c07b165e Remove stray comma from documentation.
llvm-svn: 194056
2013-11-05 09:12:55 +00:00
Richard Smith b47c36f8e1 C++1y sized deallocation: if we have a use, but not a definition, of a sized
deallocation function (and the corresponding unsized deallocation function has
been declared), emit a weak discardable definition of the function that
forwards to the corresponding unsized deallocation.

This allows a C++ standard library implementation to provide both a sized and
an unsized deallocation function, where the unsized one does not just call the
sized one, for instance by putting both in the same object file within an
archive.

llvm-svn: 194055
2013-11-05 09:12:18 +00:00
Richard Smith 2d1d3ca1cc Enable links now that they work.
llvm-svn: 194054
2013-11-05 08:27:00 +00:00
Richard Smith 1cdec019e8 Implement C++1y sized deallocation (n3778). This is not enabled by -std=c++1y;
instead, it's enabled by the -cc1 flag -fsized-deallocation, until we sort out
the backward-compatibility issues.

llvm-svn: 191629
2013-09-29 04:40:38 +00:00
Richard Smith ee84919175 Remove commented-out entry for ARBs, they're not in C++1y any more.
llvm-svn: 191627
2013-09-28 19:09:34 +00:00
Richard Smith b438e62aba Mark lambda init-captures as complete.
llvm-svn: 191607
2013-09-28 04:37:56 +00:00
Chandler Carruth 826eec5913 Implementation of N3760 which is planned to be voted into C++14's draft
tomorrow is complete.

There is a missing warning due to a serious issue with template
instantiation in Clang (and potentially in the core language).

llvm-svn: 191577
2013-09-27 22:30:27 +00:00
Richard Smith dca0c7a5fb Mark variable template implementation as complete. Nearly all of the credit
here goes to Larisse Voufo.

llvm-svn: 191549
2013-09-27 20:19:41 +00:00
Richard Smith 23e43cdda6 Comment out links for papers that aren't up yet.
llvm-svn: 191547
2013-09-27 19:55:03 +00:00
Benjamin Kramer 8ba47d017b Fix typo: Dellocation.
llvm-svn: 191542
2013-09-27 19:35:09 +00:00
Richard Smith 36f11c56ed Fix formatting goof.
llvm-svn: 191541
2013-09-27 19:12:22 +00:00
Richard Smith 3ca005bd01 Update status:
* generic lambdas are now partially supported
 * add papers from formal motions in committee

llvm-svn: 191540
2013-09-27 19:11:33 +00:00
Larisse Voufo b9737e314c Update status of support for variable templates on website.
llvm-svn: 187785
2013-08-06 07:37:09 +00:00
Richard Smith 08d6a2cc7a C++1y: track object lifetime during constexpr evaluation, and don't allow
objects to be used once their lifetimes end. This completes the C++1y
constexpr extensions.

llvm-svn: 187025
2013-07-24 07:11:57 +00:00
Richard Smith 8d0dc31dca Tighten up the set of operator new/operator delete calls we're permitted to
optimize, to follow the permissions granted in N3664. Under those rules, only
calls generated by new-expressions and delete-expressions are permitted to be
optimized, and direct calls to ::operator new and ::operator delete must be
treated as normal calls.

llvm-svn: 186799
2013-07-21 23:12:18 +00:00
Richard Smith 9924772d5f Turn Clang 3.3 boxes on C++ status from yellow to green now we're releasing it.
llvm-svn: 184149
2013-06-17 23:54:23 +00:00
Larisse Voufo e4fb3dc7d4 Corrected status of support for contextual conversion from full to SVN
llvm-svn: 184073
2013-06-17 05:37:15 +00:00
Larisse Voufo 492a6af72f Updated status of support for contextual conversion from partial to full
llvm-svn: 184049
2013-06-15 20:26:23 +00:00
Larisse Voufo 27ef14f098 Updated C++1y status for contextual conversions to 'partial' (without review)
llvm-svn: 183888
2013-06-13 06:04:33 +00:00
Richard Smith 0e4676e1f5 Downgrade C++14 "Clarifying memory allocation". We perform non-conforming
optimizations -- in particular, globalopt will remove calls to ::operator
new(size_t) that did not come from new-expressions.

llvm-svn: 181676
2013-05-12 23:39:32 +00:00
Richard Smith 9155be1e54 C++1y: provide full 'auto' return type deduction for lambda expressions. This
completes the implementation of N3638.

llvm-svn: 181669
2013-05-12 03:09:35 +00:00
Richard Smith f2f6e114fd Switch C++1y paper links back to the canonical location at open-std.org now that the post-Bristol mailing has shipped.
llvm-svn: 181533
2013-05-09 18:53:17 +00:00
Richard Smith badcd986bb C++ status:
- fix paper links to point to isocpp.org, where most of the papers are already up
 - update "SVN" features to "Clang 3.3" to distinguish them from features which we
   complete after the branch
 - document use of -std=c++1y to enable c++1y support

llvm-svn: 181283
2013-05-07 02:55:48 +00:00
Richard Smith fa7a7b4f36 Tweaks to C++ status: add a link to Faisal's generic lambdas implementation,
and mark "clarifying memory allocation" as done, since it turns out that our
optimizations here (such as they are) already conform to the new rules.

llvm-svn: 181110
2013-05-04 07:12:37 +00:00
Richard Smith 452d6b0331 More colours for C++ status page, and mark relaxed constexpr as partially complete.
llvm-svn: 181109
2013-05-04 07:02:10 +00:00
Richard Smith 2a7d481faf Implement most of N3638 (return type deduction for normal functions).
Missing (somewhat ironically) is support for the new deduction rules
in lambda functions, plus PCH support for return type patching.

llvm-svn: 181108
2013-05-04 07:00:32 +00:00
Richard Smith 74aeef50a0 Implement C++1y decltype(auto).
llvm-svn: 180610
2013-04-26 16:15:35 +00:00
Richard Smith 852c9db72b C++1y: Allow aggregates to have default initializers.
Add a CXXDefaultInitExpr, analogous to CXXDefaultArgExpr, and use it both in
CXXCtorInitializers and in InitListExprs to represent a default initializer.

There's an additional complication here: because the default initializer can
refer to the initialized object via its 'this' pointer, we need to make sure
that 'this' points to the right thing within the evaluation.

llvm-svn: 179958
2013-04-20 22:23:05 +00:00
Richard Smith 4cf9a1ee0b Add note that some of these links are dead for now.
llvm-svn: 179950
2013-04-20 13:22:50 +00:00
Richard Smith 33089cbdae VLAs in C++14!
llvm-svn: 179949
2013-04-20 13:20:33 +00:00
Richard Smith 7898d7ba96 Variable templates and generic lambdas are approved for C++14.
llvm-svn: 179947
2013-04-20 12:58:57 +00:00
Richard Smith d3a7386452 Clarifying memory allocation: approved for C++14. Move from N/A to no, since we currently relax 'operator new' calls which didn't come from new-expressions.
llvm-svn: 179946
2013-04-20 12:57:49 +00:00
Richard Smith 74c61eaca2 No digit separators for C++14.
llvm-svn: 179945
2013-04-20 12:56:37 +00:00
Richard Smith 7feda2f990 Generalized constexpr is approved for C++14.
llvm-svn: 179944
2013-04-20 12:49:36 +00:00
Richard Smith 5db8b286e2 More approved C++14 features.
llvm-svn: 179943
2013-04-20 12:47:36 +00:00
Richard Smith 0fa4fceaae Binary literals are approved for C++14.
llvm-svn: 179942
2013-04-20 12:44:32 +00:00
Richard Smith c5c27f2a1f Note that we support (and in fact have supported since the dawn of time itself)
C++1y binary literals.

llvm-svn: 179883
2013-04-19 20:47:20 +00:00
Richard Smith 9172520f57 Initial work on status page for C++14.
llvm-svn: 179864
2013-04-19 17:27:48 +00:00
Richard Smith 25b555a6bf C++11 support is now feature-complete.
llvm-svn: 179861
2013-04-19 17:00:31 +00:00
Richard Smith b7151b910c Add support for computing the exception specification for an inheriting
constructor. This isn't quite perfect (as usual, we don't handle default
arguments correctly yet, and we don't deal with copy/move constructors for
arguments correctly either, but this will be fixed when we implement core issue
1351.

This completes our support for inheriting constructors.

llvm-svn: 179154
2013-04-10 06:11:48 +00:00
Richard Smith 38546eddf4 Add a linebreak. Linebreaks are cool.
llvm-svn: 177325
2013-03-18 21:57:52 +00:00
Richard Smith 8024ee5603 C++11 status: mark 'extended integral types' as N/A, since we don't support
any, and add a note that we cannot treat __int128 as an extended integral type.

llvm-svn: 177324
2013-03-18 21:44:56 +00:00
Richard Smith 9deb9d9d42 Make C++11 status page more consistent: we mark entries as "done" if we
implement correct functionality, even if it's not optimal. On this basis, mark
"data dependency ordering" as done. Add footnotes for cases where our
implementation is known to be suboptimal.

llvm-svn: 176891
2013-03-12 19:56:09 +00:00
Richard Smith 531c9a0c27 www tweaks to embiggen up our near-complete C++11 and C11 support.
llvm-svn: 176781
2013-03-10 00:11:00 +00:00
Richard Smith 537a834bca C++11 status page:
* Mark attributes as done in SVN.
 * Downgrade alignment support from 'Clang 3.0' to 'SVN', now that we actually implement the rules.
 * Upgrade 'Dynamic initialization with concurrency' from 'No' to 'Clang 2.9' -- all that is required here is the ABI-mandated locking for the initialization of static locals.

llvm-svn: 175882
2013-02-22 09:31:00 +00:00
Richard Smith bc4fc77aac C++11 status:
* Mark 'sequence points' as done now we have a warning for unsequenced operations
 * Mark 'memory model' as done now we correctly model bitfield operations

llvm-svn: 173771
2013-01-29 04:55:18 +00:00
Richard Smith 2ddcbab8ff Ugly ugly hack for libstdc++-4.6 and libstdc++-4.7 compatibility. These
libraries have an incorrect definition of std::common_type (inherited from a
bug in the standard -- see LWG issue 2141), whereby they produce reference
types when they should not.

If we instantiate a typedef named std::common_type<...>::type, which is defined
in a system header as decltype(... ? ... : ...), and the decltype produces a
reference type, convert it to the non-reference type. (This doesn't affect any
LWG2141-conforming implementation of common_type, such as libc++'s, because the
default implementation of common_type<...>::type isn't supposed to produce a
reference type.)

This is horrible. I'm really sorry. :( Better ideas appreciated!

llvm-svn: 166455
2012-10-23 00:32:41 +00:00
Richard Smith 84b163cf66 libstdc++-4.6 needs the same common_type fix as libstdc++-4.7. Other than that,
Clang can now cope with its eccentricities in C++11 mode.

llvm-svn: 165265
2012-10-04 22:23:07 +00:00
Richard Smith 607d631d64 Clang 3.1 is out: turn the relevant C++11 status boxes green.
llvm-svn: 157308
2012-05-23 01:38:11 +00:00
Benjamin Kramer 134ce10dbf c++11 status: Replace references to "SVN" with "3.1" to avoid confusion when they diverge.
Color is still yellow, as 3.1 isn't released yet.

llvm-svn: 155217
2012-04-20 18:43:50 +00:00
Richard Smith 3c90f01bf0 In an attempt to reduce confusion, mark 'Strong compare exchange' as done, since
we generate correct code for both strong and weak atomic compare-exchanges, even
though we don't propagate to the IR enough information to generate optimal weak
compare-exchanges on architectures which support them.

llvm-svn: 155161
2012-04-19 22:09:22 +00:00
Richard Smith f5520aebb1 Link to a tiny patch to libstdc++-4.7 to work around the <chrono> issues
from the C++ status page.

llvm-svn: 154890
2012-04-17 01:04:22 +00:00
Richard Smith d3b64878ff Now that we provide sufficient support for three C11/C++11 atomics
implementations, mark the atomics-related parts of the C++11 status page
as done. I've not marked 'Strong Compare and Exchange' done, since although
we implement supporting builtins, we don't yet produce different code for
the weak and strong forms.

llvm-svn: 154644
2012-04-13 01:02:19 +00:00
Douglas Gregor 0598962a7b Add a query macro for C++11 N3276, decltype does not require complete
return types, from Michel Morin!

llvm-svn: 154428
2012-04-10 20:00:33 +00:00
Richard Smith 6da64f39d4 Forward-declared enumerations are now complete, except for an interaction
between unscoped enumerations and class template member specializations,
whose behavior is currently under discussion in CWG (and for which there
is a preference to not implement the currently-standardized wording).

llvm-svn: 153464
2012-03-26 20:31:41 +00:00
Richard Smith 34bd1eb560 Revert accidentally-committed www changes (and an unused diagnostic);
forward-declared enums aren't /quite/ done yet.

llvm-svn: 153350
2012-03-23 23:11:49 +00:00
Richard Smith b66d77793f When defining a forward-declared enum, don't try to attach the definition to
a previous declaration if the redeclaration is invalid. That way lies madness.
Fixes a crash-on-invalid reported by Abramo.

llvm-svn: 153349
2012-03-23 23:09:08 +00:00
Richard Smith 4b38ded66a Instantiating a class template should not instantiate the definition of any
scoped enumeration members. Later uses of an enumeration temploid as a nested
name specifier should cause its instantiation. Plus some groundwork for
explicit specialization of member enumerations of class templates.

llvm-svn: 152750
2012-03-14 23:13:10 +00:00
Richard Smith 6d244d754b cxx_status: No compiler changes are required for 'minimal support for garbage
collection'. Keep it in the table to match gcc's table, but mark it N/A.

llvm-svn: 152528
2012-03-11 03:06:00 +00:00
Richard Smith 2a70e65436 Improve diagnostics for UCNs referring to control characters and members of the
basic source character set in C++98. Add -Wc++98-compat diagnostics for same in
literals in C++11. Extend such support to cover string literals as well as
character literals, and mark N2170 as done.

This seems too minor to warrant a release note to me. Let me know if you disagree.

llvm-svn: 152444
2012-03-09 22:27:51 +00:00
Richard Smith 5023188315 User-defined literals are done.
llvm-svn: 152396
2012-03-09 08:41:27 +00:00
Richard Smith 522fa53703 Add a pile of tests for unrestricted unions, and advertise support for them.
llvm-svn: 151992
2012-03-03 23:51:05 +00:00
Sebastian Redl d89c218a2b Initializer lists are now supported.
llvm-svn: 151458
2012-02-25 20:51:27 +00:00
Richard Smith 18743deb21 cxx_status: Consistently refer to C++11 as "C++11", not as "C++'11" nor as
"C++0x". Use "C++98" to refer to C++98, not "C++". Add heading for C++98
support section.

llvm-svn: 151381
2012-02-24 18:42:08 +00:00
Richard Smith 4e8376279d cxx_status: extended sizeof has been essentially complete for some time. As
agreed on IRC, any remaining issues are best dealt with as bugs.

We have no __has_feature check for this; please shout if you'd like one. This
feature seems too small to be worth its own release notes bullet (again, please
shout if you disagree).

llvm-svn: 151380
2012-02-24 18:37:14 +00:00
Douglas Gregor a2bd11f2de Tweak C++ status table:
- Apparently, SVN is yellow
  - Note that initializer lists are "in progress"

llvm-svn: 151232
2012-02-23 03:10:24 +00:00
Douglas Gregor 34b2e8bb17 Clang now supports lambda expressions.
llvm-svn: 151231
2012-02-23 03:02:32 +00:00
Richard Smith b9a7efd791 I hereby declare that all remaining constexpr issues are bugs, not unimplemented
features. :)

llvm-svn: 150522
2012-02-14 22:39:23 +00:00
Richard Smith 173b94c9ac Revert accidentally-committed file in r148020.
llvm-svn: 148021
2012-01-12 06:10:09 +00:00
Richard Smith 02ab9c2940 Allow constant-folding of references which were formed in a manner not permitted
in a constant expression, for compatibility with g++.

llvm-svn: 148020
2012-01-12 06:08:57 +00:00
Benjamin Kramer 1c9e158120 Fix markup weirdness.
llvm-svn: 143803
2011-11-05 10:11:36 +00:00
David Blaikie 503616199f Fixing some dead links. Patch by Jean-Daniel Dupas!
llvm-svn: 143539
2011-11-02 15:13:40 +00:00
Michael J. Spencer e73bd64d12 Add colors to the C++11 status page.
llvm-svn: 143535
2011-11-02 06:29:37 +00:00
Douglas Gregor 7ff1e7ed68 Deleted functions were in Clang 2.9, defaulted functions in
3.0. Fixses PR11252.

llvm-svn: 143216
2011-10-28 19:44:09 +00:00
Douglas Gregor 3d711633a3 Tweak the C++11 status prose a bit. We still need better user guidance on the standard library issue
llvm-svn: 142019
2011-10-14 23:35:48 +00:00
Douglas Gregor 1f64b59872 Switch the C++11 status table from a developer-centric list to a
user-centric list, with Clang version numbers, following GCC's lead
(and user requests).

llvm-svn: 142015
2011-10-14 23:21:49 +00:00
David Blaikie e35b3aae52 Updating the Clang website to refer to C++'11 instead of C++'0x
llvm-svn: 141949
2011-10-14 07:58:10 +00:00
Sebastian Redl 6ce53ae752 Now that we support move generation, mention this in the language extension and C++ status pages. Also update the C++ status for default functions, which are complete now that we can generate move functions, and destructor exception specifications, which I did a while ago.
llvm-svn: 141558
2011-10-10 18:10:00 +00:00
Craig Topper 93b3e848de Update C++0x status page to reflect support for raw string literals.
llvm-svn: 137299
2011-08-11 04:09:26 +00:00
Douglas Gregor 9bcdc82642 Update C++0x status page to reflect support for unicode string and character literals, from Craig Topper
llvm-svn: 136216
2011-07-27 15:10:09 +00:00
Douglas Gregor 918f98ab42 Update C++0x status for explicit override controls and explicit
conversion operators, from Jonathan Sauer.

llvm-svn: 135932
2011-07-25 18:53:48 +00:00
Richard Smith 42a4996b5a Update cxx_status page on www: clang has had full support for in-class initializers since r132890.
llvm-svn: 135689
2011-07-21 18:02:57 +00:00
Douglas Gregor 17aa45d431 Clean up the C++ status page by eliminating the utterly unnecessary set of projects. C++98/03 is sooooo yesterday
llvm-svn: 135687
2011-07-21 17:46:15 +00:00
Douglas Gregor 80d6322c00 Update C++0x nullptr status, from Jonathan Sauer
llvm-svn: 135686
2011-07-21 17:41:00 +00:00
Richard Smith e3a5ff1508 Update www: we now mangle references to function parameters properly. Also, this is really more a decltype issue rather than a late-specified return type issue.
llvm-svn: 130958
2011-05-05 22:07:51 +00:00
Richard Smith 3f1b5d077b Implement support for C++0x alias templates.
llvm-svn: 130953
2011-05-05 21:57:07 +00:00
Alexis Hunt 61bc173784 Fully implement delegating constructors!
As far as I know, this implementation is complete but might be missing a
few optimizations. Exceptions and virtual bases are handled correctly.

Because I'm an optimist, the web page has appropriately been updated. If
I'm wrong, feel free to downgrade its support categories.

llvm-svn: 130642
2011-05-01 07:04:31 +00:00
Richard Smith 6c42433ceb Update www: clang now supports C++11 for-range and non-template type aliases.
llvm-svn: 129569
2011-04-15 14:38:27 +00:00
Chris Lattner 57540c5be0 fix a bunch of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!

llvm-svn: 129559
2011-04-15 05:22:18 +00:00
Richard Smith fdc33cbecd Name mangling of late-specified return types doesn't work if the return type references the argument types:
template<typename T> auto f(T a) -> decltype(a.foo());

Since this is the primary reason for the introduction of this feature, downgrade implementation status to "Some examples work".

llvm-svn: 129533
2011-04-14 19:57:19 +00:00
Richard Smith 13f68cf53e clang has had full and tested support for C++0x trailing-return-type and auto type deduction since r126166. Update the website to reflect this, and add a __has_feature test.
trailing-return-type codegen is not tested yet (name mangling in particular).

llvm-svn: 128787
2011-04-03 14:12:46 +00:00
Jeffrey Yasskin cb40757195 Add a libstdc++-4.4 patch for C++0x to the website.
llvm-svn: 128498
2011-03-29 22:27:50 +00:00
Douglas Gregor 0a1650feae Clang supports __STDC_HOSTED__. Patch by Jonathan Sauer
llvm-svn: 128377
2011-03-27 09:49:38 +00:00
Richard Smith bb7dcf59a0 Update the www to indicate that auto is now implemented.
llvm-svn: 126280
2011-02-23 00:41:16 +00:00
Douglas Gregor 9636753d39 Update C++0x status web page
llvm-svn: 124326
2011-01-26 21:35:14 +00:00
Douglas Gregor eecc6bc388 Variadic templates are fully implemented.
Turn on the __has_feature switch for variadic templates, document
their completion, and put the ExtWarn into the c++0x-extensions
warning group.

llvm-svn: 123854
2011-01-19 22:11:50 +00:00
Douglas Gregor cf082adeca Add back the late-specified return type paper
llvm-svn: 122317
2010-12-21 05:54:22 +00:00
Douglas Gregor 6b6e08228c Updates to the C++ status page for C++0x features, from Michael Price
llvm-svn: 122315
2010-12-21 05:43:31 +00:00
Chris Lattner a45ebd2fd1 be less threatening.
llvm-svn: 116187
2010-10-11 05:20:49 +00:00
Douglas Gregor 21fd023d44 Update C++0x status
llvm-svn: 114217
2010-09-17 21:37:49 +00:00
Gabor Greif e4d36a2415 mark boost's tracking bug as fixed
llvm-svn: 112183
2010-08-26 14:20:18 +00:00
Chris Lattner b9ea2c29a1 down with export.
llvm-svn: 104383
2010-05-21 21:16:21 +00:00
Chris Lattner da9e3287f9 another unneeded line.
llvm-svn: 104379
2010-05-21 21:02:17 +00:00
Chris Lattner 6fe3748de4 major update to the C++ status page. C++ support is
now done and no more patches to it will be accepted.

llvm-svn: 104378
2010-05-21 20:59:40 +00:00
Douglas Gregor 61c1ac2e5c Remove the blanket statement about Clang not supporting access control. It does now
llvm-svn: 101041
2010-04-12 16:01:38 +00:00
Anton Korobeynikov c5c905e772 Fix typo
llvm-svn: 95664
2010-02-09 16:50:54 +00:00
Anton Korobeynikov 55496d736b Clearify Qt status a bit
llvm-svn: 95663
2010-02-09 16:46:25 +00:00
Douglas Gregor fa186e9e19 Add Qt, CMake projects to the list of C++ projects we're working on compiling
llvm-svn: 95662
2010-02-09 16:36:17 +00:00
Douglas Gregor bb26a92239 Update Clang C++ status, with a more project-centric focus.
llvm-svn: 95455
2010-02-05 23:51:14 +00:00
Chris Lattner f0b0cb2dcb comments shouldn't go in the AST, and we already make it easy
to go from a decl to the doc comments for it.

llvm-svn: 91785
2009-12-19 20:59:13 +00:00
Douglas Gregor 4044489d69 Update C++ status page to reflect reality
llvm-svn: 91541
2009-12-16 16:23:48 +00:00
Douglas Gregor 09177b2b7f Update C++ status
llvm-svn: 89492
2009-11-20 22:00:06 +00:00
Benjamin Kramer 53ba5f21ff Doug says this is medium done.
llvm-svn: 85592
2009-10-30 14:54:38 +00:00
Benjamin Kramer c1dea5dded cxx_status: fix some missing/wrong cells.
llvm-svn: 85591
2009-10-30 14:41:58 +00:00
Fariborz Jahanian 370606afee Restored note on pointer to members with a pointer
to issue involved.

llvm-svn: 85409
2009-10-28 18:06:53 +00:00
Fariborz Jahanian 7e4e44f5fa Removed a Note related to pointer to member functions which
does not seem to exist any longer.

llvm-svn: 85405
2009-10-28 17:25:01 +00:00
Douglas Gregor 19f3d70149 Test
explicit-instantiation-declaration-after-explicit-instantiation-definition
errors. This wraps up explicit template instantiation for now.

llvm-svn: 85347
2009-10-27 23:55:05 +00:00
Fariborz Jahanian 9559ced10b Updated, we support == and != builtins for member pointers.
llvm-svn: 84679
2009-10-20 21:10:15 +00:00
Fariborz Jahanian 00c6d13dce Changes to reflect more pointer-to-member support.
llvm-svn: 84670
2009-10-20 20:31:50 +00:00
Douglas Gregor 054060c4ec Give ourselves an A- on ASTs for explicit specializations, since they
aren't rich enough to reproduce the source accurately.

llvm-svn: 84012
2009-10-13 19:41:44 +00:00
Douglas Gregor 62e10f0bdc Diagnose attempts to add default function arguments to a
specialization. This completes C++ [temp.expl.spec]!

llvm-svn: 83980
2009-10-13 17:02:54 +00:00
Sebastian Redl 8046049942 This ought to complete exception spec support. Man, am I glad.
llvm-svn: 83767
2009-10-11 09:14:57 +00:00
Douglas Gregor 1245e6ff69 Tests for C++ [expr], from James Porter!
llvm-svn: 83588
2009-10-08 22:38:14 +00:00
Benjamin Kramer d8e06611eb Fix typo.
llvm-svn: 83246
2009-10-02 12:19:16 +00:00
Douglas Gregor 49663d2a23 Update C++ status page
llvm-svn: 83157
2009-09-30 18:32:57 +00:00