summaryrefslogtreecommitdiffstats
path: root/clang/www
Commit message (Collapse)AuthorAgeFilesLines
* Add -std=c++20 flag, replace C++2a with C++20 throughout the ClangRichard Smith2020-02-191-9/+8
| | | | | | | | | | | | | user interface and documentation, and update __cplusplus for C++20. WG21 considers the C++20 standard to be finished (even though it still has some more steps to pass through in the ISO process). The old flag names are accepted for compatibility, as usual, and we still have lots of references to C++2a in comments and identifiers; those can be cleaned up separately. (cherry picked from commit 24ad121582454e625bdad125c90d9ac0dae948c8)
* [Concepts] Update cxx_status.html with Concepts support statusSaar Raz2020-01-241-1/+4
| | | | | | | Concepts will be available with Clang 10 - update cxx_status.html to reflect the papers that have been implemented. (cherry picked from commit f394d22fa82df03eaf72bf1876e2d63bbe6cd00f)
* CWG2352: Allow qualification conversions during reference binding.Richard Smith2020-01-092-4/+4
| | | | | | | | | | | | | | | | | | | | | | The language wording change forgot to update overload resolution to rank implicit conversion sequences based on qualification conversions in reference bindings. The anticipated resolution for that oversight is implemented here -- we order candidates based on qualification conversion, not only on top-level cv-qualifiers, including ranking reference bindings against non-reference bindings if they differ in non-top-level qualification conversions. For OpenCL/C++, this allows reference binding between pointers with differing (nested) address spaces. This makes the behavior of reference binding consistent with that of implicit pointer conversions, as is the purpose of this change, but that pre-existing behavior for pointer conversions is itself probably not correct. In any case, it's now consistently the same behavior and implemented in only one place. This reinstates commit de21704ba96fa80d3e9402f12c6505917a3885f4, reverted in commit d8018233d1ea4234de68d5b4593abd773db79484, with workarounds for some overload resolution ordering problems introduced by CWG2352.
* Remove outdated svn/git information from hacking pageAlexander Lanin2020-01-031-24/+2
| | | | | | | | | The patch files section is redundant to https://llvm.org/docs/GettingStarted.html. There is nothing clang specific here. We are talking about a monorepo after all. While it may seem nice to have one single clang page which explains everything, it's not: It doesn't cover the topics in sufficient depth, it's redundant to other pages and it's hard to keep it up to date as we see with the svn instructions.
* Revert "CWG2352: Allow qualification conversions during reference binding."David Blaikie2019-12-272-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit de21704ba96fa80d3e9402f12c6505917a3885f4. Regressed/causes this to error due to ambiguity: void f(const int * const &); void f(int *); int main() { int * x; f(x); } (in case it's important - the original case where this turned up was a member function overload in a class template with, essentially: f(const T1&) f(T2*) (where T1 == X const *, T2 == X)) It's not super clear to me if this ^ is expected behavior, in which case I'm sorry about the revert & happy to look into ways to fix the original code.
* features.html: Remove some old infoSylvestre Ledru2019-12-211-3/+0
|
* clang is now under the apache2 licenseSylvestre Ledru2019-12-212-10/+9
|
* Remove a gcc 4.9 comparison as it doesn't make senseSylvestre Ledru2019-12-211-8/+2
|
* CWG2352: Allow qualification conversions during reference binding.Richard Smith2019-12-192-4/+4
| | | | | | | | | | | | | | | The language wording change forgot to update overload resolution to rank implicit conversion sequences based on qualification conversions in reference bindings. The anticipated resolution for that oversight is implemented here -- we order candidates based on qualification conversion, not only on top-level cv-qualifiers. For OpenCL/C++, this allows reference binding between pointers with differing (nested) address spaces. This makes the behavior of reference binding consistent with that of implicit pointer conversions, as is the purpose of this change, but that pre-existing behavior for pointer conversions is itself probably not correct. In any case, it's now consistently the same behavior and implemented in only one place.
* [analyzer] Add a syntactic security check for ObjC NSCoder API.Artem Dergachev2019-12-191-0/+16
| | | | | | | Method '-[NSCoder decodeValueOfObjCType:at:]' is not only deprecated but also a security hazard, hence a loud check. Differential Revision: https://reviews.llvm.org/D71728
* Implement latest C++ feature test macro recommendations.Richard Smith2019-12-191-10/+3
| | | | | | | | We don't yet advertise init capture packs, because I found some bugs while testing it. We reject-valid and then crash on both of these: template<int ...a> auto x = [...y = a] {}; template<int ...a> auto x = [y = a...] {};
* [c++20] P1959R0: Remove support for std::*_equality.Richard Smith2019-12-161-2/+1
|
* [c++20] Add deprecation warnings for the expression forms deprecated by P1120R0.Richard Smith2019-12-161-3/+1
| | | | | | | | | | | | | | | | | | | This covers: * usual arithmetic conversions (comparisons, arithmetic, conditionals) between different enumeration types * usual arithmetic conversions between enums and floating-point types * comparisons between two operands of array type The deprecation warnings are on-by-default (in C++20 compilations); it seems likely that these forms will become ill-formed in C++23, so warning on them now by default seems wise. For the first two bullets, off-by-default warnings were also added for all the cases where we didn't already have warnings (covering language modes prior to C++20). These warnings are in subgroups of the existing -Wenum-conversion (except that the first case is not warned on if either enumeration type is anonymous, consistent with our existing -Wenum-conversion warnings).
* Mark the major papers for C++20 consistent comparisons as "done", andRichard Smith2019-12-151-2/+1
| | | | start publishing the corresponding feature-test macro.
* [cxx_status] Fix paper number for "Concept auto" paper.Richard Smith2019-12-141-1/+1
|
* [Analyzer][Docs][NFC] Add CodeChecker to the command line toolsGabor Marton2019-12-123-3/+143
| | | | | | | | We add a new common html file that documents the available command line tools. Also a new html is added for a brief description of CodeChecker, this way complementing scan-build. Differential Revision: https://reviews.llvm.org/D70439
* [cxx_status] Re-add missing cell.Richard Smith2019-12-101-0/+1
|
* [c++20] Implement P1946R0: allow defaulted comparisons to take theirRichard Smith2019-12-101-2/+1
| | | | arguments by value.
* [c++20] Delete defaulted comparison functions if they would invoke anRichard Smith2019-12-101-2/+3
| | | | inaccessible comparison function.
* [cxx_status] Fix table layout.Richard Smith2019-12-101-1/+1
|
* [cxx_status] Add missed Belfast paper affecting three-way comparisons.Richard Smith2019-12-101-1/+4
|
* [c++20] Determine whether a defaulted comparison should be deleted orRichard Smith2019-12-061-3/+1
| | | | constexpr.
* [cxx_status] Update with Belfast motions.Richard Smith2019-11-091-11/+40
|
* [www] More HTTPS and outdated link fixes.Stephan T. Lavavej2019-11-082-3/+3
| | | | Resolves D69981.
* [analyzer] Add test cases for the unsupported C++ constructor modeling.Artem Dergachev2019-11-071-3/+40
| | | | | | | | | | | | | Namely, for the following items: - Handle constructors within new[]; - Handle constructors for default arguments. Update the open projects page with a link to the newly added tests and more hints for potential contributors. Patch by Daniel Krupp! Differential Revision: https://reviews.llvm.org/D69308
* [www] Change URLs to HTTPS.Stephan T. Lavavej2019-10-2428-2988/+2979
| | | | | | | | | | | | | | | | | | | | | | This changes most URLs in llvm's html files to HTTPS. Most changes were search-and-replace with manual verification; some changes were manual. For a few URLs, the websites were performing redirects or had changed their anchors; I fixed those up manually. This consistently uses the official https://wg21.link redirector. This also strips trailing whitespace and fixes a couple of typos. Fixes D69363. There are a very small number of dead links for which I don't know any replacements (they are equally dead as HTTP or HTTPS): https://llvm.org/cmds/llvm2cpp.html https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4 https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4 https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4 https://llvm.org/perf/db_default/v4/nts/22463 https://polly.llvm.org/documentation/memaccess.html
* Improve Clang's getting involved document and make it more inclusive in wording.Chandler Carruth2019-10-231-22/+49
| | | | | | | | | | | | Summary: Working with Meike and others to improve the wording in this document. Reviewers: klimek Subscribers: mcrosier, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D69351
* [c++20] Add rewriting from comparison operators to <=> / ==.Richard Smith2019-10-191-2/+5
| | | | | | | | | | | | | | | | | This adds support for rewriting <, >, <=, and >= to a normal or reversed call to operator<=>, for rewriting != to a normal or reversed call to operator==, and for rewriting <=> and == to reversed forms of those same operators. Note that this is a breaking change for various C++17 code patterns, including some in use in LLVM. The most common patterns (where an operator== becomes ambiguous with a reversed form of itself) are still accepted under this patch, as an extension (with a warning). I'm hopeful that we can get the language rules fixed before C++20 ships, and the extension warning is aimed primarily at providing data to inform that decision. llvm-svn: 375306
* [c++20] P1152R4: warn on any simple-assignment to a volatile lvalueRichard Smith2019-10-091-1/+1
| | | | | | | | | | | | whose value is not ignored. We don't warn on all the cases that are deprecated: specifically, we choose to not warn for now if there are parentheses around the assignment but its value is not actually used. This seems like a more defensible rule, particularly for cases like sizeof(v = a), where the parens are part of the operand rather than the sizeof syntax. llvm-svn: 374135
* [c++20] Implement most of P1152R4.Richard Smith2019-10-091-1/+1
| | | | | | | | | | | | | | Diagnose some now-deprecated uses of volatile types: * as function parameter types and return types * as the type of a structured binding declaration * as the type of the lvalue operand of an increment / decrement / compound assignment operator This does not implement a check for the deprecation of simple assignments whose results are used; that check requires somewhat more complexity and will be addressed separately. llvm-svn: 374133
* [cxx_status] Note that Clang has supported std::source_location sinceRichard Smith2019-10-081-1/+1
| | | | | | version 9. llvm-svn: 374131
* Implements CWG 1601 in [over.ics.rank/4.2]Richard Smith2019-10-061-1/+1
| | | | | | | | | | | | | | | | | | | Summary: The overload resolution for enums with a fixed underlying type has changed in the C++14 standard. This patch implements the new rule. Patch by Mark de Wever! Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65695 llvm-svn: 373866
* Mark P0784R7 as complete and start defining its feature-test macro.Richard Smith2019-10-031-2/+1
| | | | | | | Note that this only covers the language side of this feature. (The library side has its own feature test macro.) llvm-svn: 373548
* [cxx_status] Mark P0784R7 as partially complete.Richard Smith2019-09-291-1/+1
| | | | llvm-svn: 373162
* [www] Turn 'Clang 9' boxes green in C++ status pages now Clang 9 isRichard Smith2019-09-203-30/+27
| | | | | | released. llvm-svn: 372415
* [c++20] P1331R2: Allow transient use of uninitialized objects inRichard Smith2019-09-181-2/+1
| | | | | | constant evaluation. llvm-svn: 372237
* [c++20] P1143R2: Add support for the C++20 'constinit' keyword.Richard Smith2019-09-041-1/+1
| | | | | | | | | | | | | This is mostly the same as the [[clang::require_constant_initialization]] attribute, but has a couple of additional syntactic and semantic restrictions. In passing, I added a warning for the attribute form being added after we have already seen the initialization of the variable (but before we see the definition); that case previously slipped between the cracks and the attribute was silently ignored. llvm-svn: 370972
* [www] Mark items complete in Clang 9 as 'Clang 9' rather than 'SVN'.Richard Smith2019-09-033-30/+33
| | | | | | Don't turn the boxes green yet, since Clang 9 hasn't been released. llvm-svn: 370795
* [c++20] Add support for designated direct-list-initialization syntax.Richard Smith2019-08-311-1/+1
| | | | | | This completes the implementation of P0329R4. llvm-svn: 370558
* Testing commit access; NFCJoe Ranieri2019-08-271-1/+0
| | | | llvm-svn: 370051
* Fix poorly formatted HTML in the cxx_status.html file caused by addingErich Keane2019-08-191-2/+3
| | | | | | 1668. llvm-svn: 369286
* Update cxx_status.html with P1668 status.Erich Keane2019-08-191-0/+1
| | | | llvm-svn: 369282
* Test commit #2.George Karpenkov2019-08-151-0/+1
| | | | llvm-svn: 369020
* [www] Update DR status page to match latest version of CWG issues list.Richard Smith2019-08-141-32/+134
| | | | llvm-svn: 368941
* Fix cxx_status html for r367027Erich Keane2019-07-251-1/+1
| | | | llvm-svn: 367038
* Implement P1771Erich Keane2019-07-251-1/+1
| | | | | | | | | | | | | As passed in the Cologne meeting and treated by Core as a DR, [[nodiscard]] was applied to constructors so that they can be diagnosed in cases where the user forgets a variable name for a type. The intent is to enable the library to start using this on the constructors of scope_guard/lock_guard. Differential Revision: https://reviews.llvm.org/D64914 llvm-svn: 367027
* [c++20] P1161R3: a[b,c] is deprecated.Richard Smith2019-07-201-1/+1
| | | | llvm-svn: 366630
* Mark P1301R4 in C++2a as being SVN instead.Aaron Ballman2019-07-201-1/+1
| | | | llvm-svn: 366629
* We support P1301R4 in C++2a as of r366626.Aaron Ballman2019-07-201-1/+1
| | | | llvm-svn: 366628
* [cxx_status] Update status page for WG21 Cologne meeting motions.Richard Smith2019-07-201-19/+92
| | | | | | | Note that many of the paper links will be dead until the post-meeting mailing is released. llvm-svn: 366627
OpenPOWER on IntegriCloud