summaryrefslogtreecommitdiffstats
path: root/llvm/docs/CodingStandards.rst
Commit message (Collapse)AuthorAgeFilesLines
* Make coding standards document more inclusiveDmitri Gribenko2019-11-211-331/+178
| | | | | | | | | | | | Summary: Patch by Doug Gregor, Tres Popp, and Dmitri Gribenko. Reviewers: chandlerc Subscribers: hfinkel, bmcreusillet, arsenm, doug.gregor, mgrang, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69354
* Remove a no longer accurate sentence from the coding standards.Chandler Carruth2019-10-231-2/+1
| | | | (And test my commit access. We're working on larger changes here.)
* Move to C++14JF Bastien2019-08-141-96/+8
| | | | | | | | | | | | | | | Summary: I just bumped the minimum compiler versions to support C++14 in D66188. Following [our process](http://llvm.org/docs/DeveloperPolicy.html#toolchain) and [our previous agreement](http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html), I'm now officially bumping the C++ version to 14 and updating the documentation. Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, chandlerc, thakis, EricWF, jyknight, lhames, JDevlieghere Tags: #llvm Differential Revision: https://reviews.llvm.org/D66195 llvm-svn: 368887
* Update the coding standards with the new file header.Chandler Carruth2019-01-191-4/+3
| | | | llvm-svn: 351652
* Document how to comment an actual parameter.Paul Robinson2018-11-141-0/+15
| | | | | | Differential Revision: https://reviews.llvm.org/D54446 llvm-svn: 346861
* [IR] Replace `isa<TerminatorInst>` with `isTerminator()`.Chandler Carruth2018-08-261-2/+2
| | | | | | | | | | | | This is a bit awkward in a handful of places where we didn't even have an instruction and now we have to see if we can build one. But on the whole, this seems like a win and at worst a reasonable cost for removing `TerminatorInst`. All of this is part of the removal of `TerminatorInst` from the `Instruction` type hierarchy. llvm-svn: 340701
* Update the coding standards and developer policy documentation surrounding ↵Aaron Ballman2018-08-101-2/+8
| | | | | | | | whitespace. Clarify that you should not introduce trailing whitespace when making a commit and that you should not remove trailing whitespace that's unrelated to code you are changing or are about to change. Then clarified the developer policy around what is considered an obvious whitespace commit. llvm-svn: 339455
* [NFC] update coding standard links to HTTPSJF Bastien2018-05-181-11/+11
| | | | | | Update one link which redirected, and remove an Amazon ref. llvm-svn: 332735
* [docs] Add a note on non-deterministic sorting order of equal elementsMandeep Singh Grang2018-04-241-0/+11
| | | | | | | | | | | | Reviewers: RKSimon, t.p.northover, dexonsmith Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45831 llvm-svn: 330773
* Minor fix in docs.Alexander Kornienko2018-04-051-2/+2
| | | | llvm-svn: 329277
* Coding Standards: Document library layering requirements & header isolation.David Blaikie2018-02-011-19/+46
| | | | | | | | | | | | | | | | (I suppose these two pieces could be separated - but seemed related enough) As discussed on llvm-dev, this documents the general expectation of how library layering should be handled. There are a few existing cases where these constraints are not met, but as with most style guide things - this is forward looking and provides guidance when cleaning up existing code, it doesn't immediately require that all previous code be cleaned up to match. (see: naming conventions, etc) Differential Revision: https://reviews.llvm.org/D42771 llvm-svn: 324004
* Update some code.google.com linksHans Wennborg2017-11-131-1/+1
| | | | llvm-svn: 318115
* [docs] Add a note on iteration of unordered containers to coding standardsMandeep Singh Grang2017-09-061-0/+15
| | | | | | | | | | | | | | Summary: Beware of non-determinism due to ordering of pointers Reviewers: dblaikie, dexonsmith Reviewed By: dblaikie Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D37525 llvm-svn: 312667
* [Docs] Update CodingStandards to recommend range-based for loopsAlex Bradbury2017-08-311-11/+23
| | | | | | | | | | | | The CodingStandards section on avoiding the re-evaluation of end() hasn't been updated since range-based for loops were adopted in the LLVM codebase. This patch adds a very brief section that documents how range-based for loops should be used wherever possible. It also moves example code in CodingStandards to use range-based for loops and auto when appropriate. Differential Revision: https://reviews.llvm.org/D37264 llvm-svn: 312236
* Refine report_fatal_error guidance after post-commit reviewAlex Bradbury2017-08-181-3/+4
| | | | | | | | | Use text suggested by Justin Bogner in post-commit review of r311146 <http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170814/479898.html>, which makes it clear that report_fatal_error shouldn't be used when there is a practicable alternative. Also make this clearer in CodingStandards. llvm-svn: 311147
* Give guidance on report_fatal_error in CodingStandards.rst and ↵Alex Bradbury2017-08-181-0/+5
| | | | | | | | | | | | | | | | | | | | | | | ProgrammersManual.rst The current ProgrammersManual.rst document has a lot of well-written documentation on error handling thanks to @lhames. It suggests errors can be split cleanly into "programmatic" and "recoverable" errors. However, the reality in current LLVM seems to be there are a number of cases where a non-programmatic error is not easily recoverable. Therefore, add a note to indicate the existence of report_fatal_error for these cases. I've also added a reminder to CodingStandards.rst in the section on assertions, to indicate that llvm_unreachable and assertions should not be relied upon to report errors triggered by user input. The ProgrammersManual is also silent on the use of LLVMContext::diagnose, which is used in BPF+WebAssembly+AMDGPU to report some errors during instruction selection. I don't address that in this patch, as it's not quite clear how to fit in to the current error handling story Differential Revision: https://reviews.llvm.org/D36826 llvm-svn: 311146
* fix typos in a document; NFCHiroshi Inoue2017-07-181-3/+3
| | | | llvm-svn: 308331
* Fix some remaining documentation references to MSVC 2013Reid Kleckner2016-12-151-3/+2
| | | | | | | | MSVC 2015 has been the minimum supported version of VS since October. Differential Revision: https://reviews.llvm.org/D25710 llvm-svn: 289854
* Update docs to reflect new minimum MSVC version requirementReid Kleckner2016-10-191-5/+1
| | | | | | | | | | Mailing list discussion about this: http://lists.llvm.org/pipermail/llvm-dev/2016-September/104631.html Code changes to simplify the ifdefs will come next, and can be reverted without affecting the policy if someone needs it. llvm-svn: 284660
* [docs] Increase minimum supported GCC version for building LLVM to 4.8Teresa Johnson2016-10-181-1/+1
| | | | | | | | | | | | | | | | | | | | Summary: The RFC proposal sent to increase the minimum required GCC version to 4.8 received a lot of support. See the following thread: http://lists.llvm.org/pipermail/llvm-dev/2016-October/105955.html, This patch implements that by updating the docs. I believe the references to libstdc++ 4.7 issues can be removed as well, please let me know if that is not the case or if they should be updated a different way. Reviewers: rengolin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25683 llvm-svn: 284497
* [docs] Reduce the number of places 'minimum requirements' is mentioned to oneRenato Golin2016-10-171-1/+2
| | | | llvm-svn: 284380
* [docs] Fix naming style in the exampleAlexander Kornienko2016-09-271-1/+1
| | | | llvm-svn: 282490
* Make the coding standards a bit more clear that we prefer the fancy newChandler Carruth2016-09-011-4/+5
| | | | | | | | | | | auto-brief format for doxygen comments. Most notable is switching to that in the example doxygen comment. I've also tweaked the wording but am happy to tweak it further if others have suggestions here. Mostly doing this to capture something I and others have been writing consistently and repeatedly in code reviews. llvm-svn: 280419
* Update coding standards for include style.Zachary Turner2016-08-231-1/+11
| | | | | | | Reviewed By: lattner Differential Revision: https://reviews.llvm.org/D23591 llvm-svn: 279560
* Clarify the statement on using #if 0 ... #endif in CodingStandards.Andrey Bokhanko2016-08-171-2/+4
| | | | | | | | | The statement on using #if 0 ... #endif is not very clear (for people like me :-)). This patch clarifies it a bit to avoid confusion. Differential Revision: https://reviews.llvm.org/D23404 llvm-svn: 278932
* Disable Visual C++ 2013 Debug mode assert on null pointer in some STL ↵Yaron Keren2015-08-211-2/+0
| | | | | | | | | | | | | | | algorithms, such as std::equal on the third argument. This reverts previous workarounds. Predefining _DEBUG_POINTER_IMPL disables Visual C++ 2013 headers from defining it to a function performing the null pointer check. In practice, it's not that bad since any function actually using the nullptr will seg fault. The other iterator sanity checks remain enabled in the headers. Reviewed by Aaron Ballmanþ and Duncan P. N. Exon Smith. llvm-svn: 245711
* [docs] Fix minor typo in CodingStandards.rstVedant Kumar2015-08-191-1/+1
| | | | llvm-svn: 245473
* Rename all references to old mailing lists to new lists.llvm.org address.Tanya Lattner2015-08-051-1/+1
| | | | llvm-svn: 243999
* Doxygen: Enable autobrief feature and update coding standards.Matthias Braun2015-05-151-14/+15
| | | | llvm-svn: 237417
* Add a note about permitting default member initializersReid Kleckner2015-04-301-1/+7
| | | | | | | Use them in WinEHPrepare so that we can spot any toolchain bugs that come up. llvm-svn: 236244
* CodingStyle: Allow delegating ctorsBenjamin Kramer2015-03-061-0/+2
| | | | | | Delegating constructors seem to work fine with all supported compilers. llvm-svn: 231473
* Initializer lists are supported in MSVC 2013. Since that's our minimum ↵Aaron Ballman2015-03-041-3/+2
| | | | | | required version, we can move that to the list of acceptable C++11 features. llvm-svn: 231313
* Delete LLVM_DELETED_FUNCTION from coding standardsReid Kleckner2015-02-271-28/+0
| | | | | | | | | It didn't seem worth leaving behind a guideline to use '= delete' to make a class uncopyable. That's a well known C++ design pattern. Reported on the mailing list and in PR22724. llvm-svn: 230776
* fix a typoChris Lattner2015-02-251-1/+1
| | | | llvm-svn: 230510
* Document that defaulted & deleted methods and explicit conversions are ↵Benjamin Kramer2015-02-161-0/+7
| | | | | | allowed now. llvm-svn: 229369
* Remove LLVM_HAS_VARIADIC_TEMPLATES and all the faux variadic workarounds ↵Benjamin Kramer2015-02-151-0/+2
| | | | | | | | guarded by it. We no longer support compilers without variadic template support. llvm-svn: 229324
* Update the docs to require at least MSVC 2013.Benjamin Kramer2015-02-151-1/+1
| | | | llvm-svn: 229323
* Explicitly describe '///' versus '//' comment delimiters.Paul Robinson2015-01-221-2/+4
| | | | llvm-svn: 226750
* Introduce Go coding standards for LLVM.Peter Collingbourne2014-10-141-0/+19
| | | | | | | | | Rather than define our own standards, we adopt a set of best practices that are already in use by the Go community. Differential Revision: http://reviews.llvm.org/D5761 llvm-svn: 219646
* CodingStandards: Document std::equal misbehaviourDuncan P. N. Exon Smith2014-08-191-0/+2
| | | | | | | I should have included this as part of r215986, which worked around this corner by changing ArrayRef::equals() not to use std::equal. Alas. llvm-svn: 215988
* Remove the recommendation against using std::functionReid Kleckner2014-07-021-4/+1
| | | | | | | | Clang-cl supports MSVC-style RTTI now, and we can even compile typeid(...) with /GR-. Just don't instantiate std::function with a polymorphic type, or bad things will happen. llvm-svn: 212148
* Update programmers manual to cover llvm::function_ref, and add a note to theRichard Smith2014-05-061-0/+2
| | | | | | coding standard suggesting using it instead of the (unavailable) std::function. llvm-svn: 208067
* Revert accidentally-committed files.Richard Smith2014-05-061-2/+0
| | | | llvm-svn: 208034
* Re-commit r208025, reverted in r208030, with a fix for a conformance issueRichard Smith2014-05-061-0/+2
| | | | | | which GCC detects and Clang does not! llvm-svn: 208033
* C++11: Compatibility with (C++03 => MSVC)Duncan P. N. Exon Smith2014-04-171-3/+3
| | | | llvm-svn: 206481
* C++11: Document some limitations imposed by MSVCDuncan P. N. Exon Smith2014-04-171-0/+6
| | | | llvm-svn: 206480
* [docs] Fix up some links to the preferred style.Sean Silva2014-04-081-5/+2
| | | | | | | | | | | | | :doc:`...` and :ref:`...` links help Sphinx keep track the dependencies between documents and ensure that they are not pointing to nowhere. Raw HTML links work just fine and are easier for people less familiar with reST/Sphinx. They are easy to change over to the :doc:/:ref: style after the fact so this is not a problem. This commit doesn't fix all of them. llvm-svn: 205792
* C++11: Remove const from in auto guidelinesDuncan P. N. Exon Smith2014-03-071-7/+5
| | | | | | Using const is orthogonal to guidelines on using auto& and auto*. llvm-svn: 203257
* C++11: Copy pointers with const auto *Duncan P. N. Exon Smith2014-03-071-1/+5
| | | | llvm-svn: 203254
* Avoid std::function until PR19030 is fixedReid Kleckner2014-03-031-0/+4
| | | | | | | | | We'd like to keep the clang-cl self-host working until we implement MSVC-compatible RTTI. Differential Revision: http://llvm-reviews.chandlerc.com/D2930 llvm-svn: 202758
OpenPOWER on IntegriCloud