summaryrefslogtreecommitdiffstats
path: root/clang/docs
Commit message (Collapse)AuthorAgeFilesLines
...
* Add an implementation of C11's stdatomic.hHal Finkel2014-10-031-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | Adds a Clang-specific implementation of C11's stdatomic.h header. On systems, such as FreeBSD, where a stdatomic.h header is already provided, we defer to that header instead (using our __has_include_next technology). Otherwise, we provide an implementation in terms of our __c11_atomic_* intrinsics (that were created for this purpose). C11 7.1.4p1 requires function declarations for atomic_thread_fence, atomic_signal_fence, atomic_flag_test_and_set, atomic_flag_test_and_set_explicit, and atomic_flag_clear, and requires that they have external linkage. Accordingly, we provide these declarations, but if a user elides the shadowing macros and uses them, then they must have a libc (or similar) that actually provides definitions. atomic_flag is implemented using _Bool as the underlying type. This is consistent with the implementation provided by FreeBSD and also GCC 4.9 (at least when __GCC_ATOMIC_TEST_AND_SET_TRUEVAL == 1). Patch by Richard Smith (rebased and slightly edited by me -- Richard said I should drive at this point). llvm-svn: 218957
* Enable both C and C++ modules with -fmodules, by switching -fcxx-modules toRichard Smith2014-09-301-13/+8
| | | | | | | | | | | | | | | | | being on by default. -fno-cxx-modules can still be used to enable C modules but not C++ modules, but C++ modules is not significantly less stable than C modules any more. Also remove some of the scare words from the modules documentation. We're certainly not going to remove modules support (though we might change the interface), and it works well enough to bootstrap and build lots of non-trivial code. Note that this does not represent a commitment to the current interface nor implementation, and we still intend to follow whatever direction the C and C++ committees take regarding modules support. llvm-svn: 218717
* Update modules documentation now that C++ support is working pretty well.Richard Smith2014-09-291-6/+3
| | | | llvm-svn: 218614
* testing commit access to clang repoJyoti Allur2014-09-291-1/+0
| | | | llvm-svn: 218592
* Thread Safety Analysis: Update to documentation.DeLesley Hutchins2014-09-241-265/+394
| | | | | | | | | | The attribute documentation now conforms to Aaron Ballman's renaming of the thread safety attributes, as well as the new paper that is due to be published in the conference on Source Code Analysis and Manipulation (SCAM 2014) later this week. In addition, recent changes to the analysis, such as checking of references and negative capabilities, are now documented. llvm-svn: 218420
* Change -Wbind-to-temporary-copy from an ExtWarn to an Extension.Nico Weber2014-09-181-1/+1
| | | | | | | | | | | | | | | | | The reasoning is that this construct is accepted by all compilers and valid in C++11, so it doesn't seem like a useful warning to have enabled by default. Building with -pedantic, -Wbind-to-temporary-copy, or -Wc++98-compat still shows the warning. The motivation is that I built re2, and this was the only warning that was emitted during the build. Both changing re2 to fix the warning and detecting clang and suppressing the warning in re2's build seem inferior than just giving the compiler a good default for this warning. Also move the cxx98compat version of this warning to CXX98CompatPedantic, and update tests accordingly. llvm-svn: 218008
* [sphinx cleanup]Dan Liew2014-09-161-1/+1
| | | | | | Fix warning introduced by r211098. llvm-svn: 217864
* clang-format: Add option to break before non-assignment operators.Daniel Jasper2014-09-151-3/+13
| | | | | | | | | This will allow: int aaaaaaaaaaaaaa = bbbbbbbbbbbbbb + ccccccccccccccc; llvm-svn: 217757
* [sphinx cleanup]Dan Liew2014-09-101-1/+1
| | | | | | Fix sphinx warning introduced by r217501. llvm-svn: 217524
* clang-format: Add option to allow short case labels on a single line.Daniel Jasper2014-09-101-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | On a single line: switch (a) { case 1: x = 1; return; case 2: x = 2; return; default: break; } Not on a single line: switch (a) { case 1: x = 1; return; case 2: x = 2; return; default: break; } This partly addresses llvm.org/PR16535. In the long run, we probably want to lay these out in columns. llvm-svn: 217501
* Implement nonnull-attribute sanitizerAlexey Samsonov2014-09-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch implements a new UBSan check, which verifies that function arguments declared to be nonnull with __attribute__((nonnull)) are actually nonnull in runtime. To implement this check, we pass FunctionDecl to CodeGenFunction::EmitCallArgs (where applicable) and if function declaration has nonnull attribute specified for a certain formal parameter, we compare the corresponding RValue to null as soon as it's calculated. Test Plan: regression test suite Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits, rnk Differential Revision: http://reviews.llvm.org/D5082 llvm-svn: 217389
* Add __builtin_assume and __builtin_assume_aligned using @llvm.assume.Hal Finkel2014-09-071-2/+39
| | | | | | | | | | | This makes use of the recently-added @llvm.assume intrinsic to implement a __builtin_assume(bool) intrinsic (to provide additional information to the optimizer). This hooks up __assume in MS-compatibility mode to mirror __builtin_assume (the semantics have been intentionally kept compatible), and implements GCC's __builtin_assume_aligned as assume((p - o) & mask == 0). LLVM now contains special logic to deal with assumptions of this form. llvm-svn: 217349
* Add matcher for linkage specificationManuel Klimek2014-09-041-0/+10
| | | | | | Patch by Jacques Pienaar. llvm-svn: 217135
* Enhance the 'Vectors and Extended Vectors' section.Anton Yartsev2014-09-031-17/+23
| | | | | | Added cast operations to the table of vector operations. Supported status 'no' means that there are no tests in the Clang test suite for the given cast. llvm-svn: 217055
* clang-format: Add an option 'SpaceAfterCStyleCast'.Daniel Jasper2014-09-031-0/+3
| | | | | | | | | | | | | | | | | This permits to add a space after closing parenthesis of a C-style cast. Defaults to false to preserve old behavior. Fixes llvm.org/PR19982. Before: (int)i; After: (int) i; Patch by Marek Kurdej. llvm-svn: 217022
* Fixing a typo in the documented __builtin_convertvector example.Yunzhong Gao2014-09-021-1/+1
| | | | | | "vf[0]" ==> "vs[0]" llvm-svn: 216935
* unique_ptrify the result of CFG::buildCFG/CFGBuilder::buildCFGDavid Blaikie2014-08-291-4/+1
| | | | llvm-svn: 216755
* clang-format: New option SpacesInSquareBrackets.Daniel Jasper2014-08-261-0/+4
| | | | | | | | | | | | | | | | Before: int a[5]; a[3] += 42; After: int a[ 5 ]; a[ 3 ] += 42; Fixes LLVM bug #17887 (http://llvm.org/bugs/show_bug.cgi?id=17887). Patch by Marek Kurdej, thank you! llvm-svn: 216449
* Add hasAttr matcher for declarations.Manuel Klimek2014-08-251-21/+4
| | | | | | | | Delete special-case CUDA attribute matchers. Patch by Jacques Pienaar. llvm-svn: 216379
* Clear the clang release notes to make room for 3.6.Rafael Espindola2014-08-221-80/+11
| | | | llvm-svn: 216293
* Clarify.Nick Lewycky2014-08-161-2/+2
| | | | llvm-svn: 215808
* Try indenting to put all the text inside the block.Nick Lewycky2014-08-161-3/+3
| | | | llvm-svn: 215807
* Document what's experimental about __attribute__((enable_if)). PR20392Nick Lewycky2014-08-161-0/+5
| | | | llvm-svn: 215806
* Add isDeleted() matcher for FunctionDecl nodes.Samuel Benzaquen2014-08-151-1/+12
| | | | | | | | | | Reviewers: klimek Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D4911 llvm-svn: 215714
* [UBSan] Add returns-nonnull sanitizer.Alexey Samsonov2014-08-131-0/+2
| | | | | | | | | | | | | | | | | | | | Summary: This patch adds a runtime check verifying that functions annotated with "returns_nonnull" attribute do in fact return nonnull pointers. It is based on suggestion by Jakub Jelinek: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140623/223693.html. Test Plan: regression test suite Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4849 llvm-svn: 215485
* Add documentation on how Language option in .clang-format files work.Alexander Kornienko2014-08-121-0/+37
| | | | llvm-svn: 215443
* Fix sphinx warning.Dan Liew2014-08-061-1/+1
| | | | llvm-svn: 214967
* Introduce f[no-]max-unknown-pointer-align=[number] optionFariborz Jahanian2014-08-051-0/+31
| | | | | | | | | to instruct the code generator to not enforce a higher alignment than the given number (of bytes) when accessing memory via an opaque pointer or reference. Patch reviewed by John McCall (with post-commit review pending). rdar://16254558 llvm-svn: 214911
* ReleaseNotes: try to fix linksHans Wennborg2014-08-051-3/+3
| | | | llvm-svn: 214883
* ReleaseNotes: mention basic debug info and ASan support in the Windows blurbHans Wennborg2014-08-051-2/+3
| | | | llvm-svn: 214882
* clang-format: Add option to always break after a function's return type.Daniel Jasper2014-08-051-2/+9
| | | | | | | | | | This is required for GNU coding style, among others. Also update the configuration documentation. Modified from an original patch by Jarkko Hietaniemi, thank you! llvm-svn: 214858
* Adds AST matchers for matching CUDA declarations.Manuel Klimek2014-08-051-34/+78
| | | | | | Patch by Jacques Pienaar. llvm-svn: 214852
* ReleaseNotes: add blurb about Windows supportHans Wennborg2014-08-051-0/+15
| | | | llvm-svn: 214830
* UsersManual: update clang-cl optionsHans Wennborg2014-08-041-49/+88
| | | | llvm-svn: 214777
* 3.5 => 3.6Sylvestre Ledru2014-07-291-2/+2
| | | | llvm-svn: 214164
* Add support for #pragma nounroll.Mark Heffernan2014-07-241-6/+7
| | | | llvm-svn: 213885
* [modules] Slightly expand module semantics documentation.Richard Smith2014-07-241-1/+3
| | | | llvm-svn: 213838
* In unroll pragma syntax and loop hint metadata, change "enable" forms to a ↵Mark Heffernan2014-07-231-2/+2
| | | | | | new form using the string "full". llvm-svn: 213771
* ARM: Add doc for ACLE memory barrier intrinsicsYi Kong2014-07-231-0/+13
| | | | | | | Add documentations for ACLE memory barrier intrinsics, describing their motion barrier characteristics. llvm-svn: 213733
* Escaping an RST character to correct a Sphinx warning.Aaron Ballman2014-07-221-1/+1
| | | | llvm-svn: 213651
* Add support for '#pragma unroll'.Mark Heffernan2014-07-211-0/+7
| | | | llvm-svn: 213574
* Fix typosAlp Toker2014-07-141-1/+1
| | | | | | Also consolidate 'backward compatibility' llvm-svn: 212974
* Document the forward of the -u option (r211756)Sylvestre Ledru2014-07-141-0/+2
| | | | llvm-svn: 212969
* Document the warning triggered by the unsupported gcc optimization flags ↵Sylvestre Ledru2014-07-141-0/+3
| | | | | | (r212805) llvm-svn: 212968
* Enable -gcolumn-info by default.Diego Novillo2014-07-101-7/+2
| | | | | | | | | | | | | | | This patch flips the default value for -gcolumn-info to be on by default. I discussed the rationale and provided compile/size data in: http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/074290.html This also updates the documentation and some tests that relied on the lack of column information. Some tests had column information in the expected output, but it was wrong (the tsan tests). Others were using the driver to execute. llvm-svn: 212781
* clang-format: Add new option to indent wrapped function declarations.Daniel Jasper2014-07-091-0/+4
| | | | | | | | | Though not completely identical, make former IndentFunctionDeclarationAfterType change this flag for backwards compatibility (it is somewhat close in meaning and better the err'ing on an unknown config flag). llvm-svn: 212597
* clang-format: Update flag documentation.Daniel Jasper2014-07-091-5/+1
| | | | llvm-svn: 212594
* PTHInternals.rst: PCH is now a thing, update docs to reflect itAlp Toker2014-07-071-5/+5
| | | | llvm-svn: 212458
* Update internals manual on how to add AST nodes.Nico Weber2014-07-071-3/+4
| | | | | | | | StmtDumper.cpp is called ASTDumper.cpp these days, and usually works well for new AST nodes without changes. There's now DataRecursiveASTVisitor in addition to RecursiveASTVisitor, and serialization wasn't mentioned. llvm-svn: 212426
* Update the MSVC compatibilty document for class template parsingReid Kleckner2014-07-021-16/+35
| | | | llvm-svn: 212237
OpenPOWER on IntegriCloud