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