summaryrefslogtreecommitdiffstats
path: root/clang/docs
Commit message (Collapse)AuthorAgeFilesLines
* clang-format: Add a new brace style "custom" as well as flags toDaniel Jasper2015-09-292-4/+88
| | | | | | | | | | | | | | | control the individual braces. The existing choices for brace wrapping are now merely presets for the different flags that get expanded upon calling the reformat function. All presets have been chose to keep the existing formatting, so there shouldn't be any difference in formatting behavior. Also change the dump_format_style.py to properly document the nested structs that are used to keep these flags discoverable among all the configuration flags. llvm-svn: 248802
* Fix a typo.Adrian Prantl2015-09-171-1/+1
| | | | llvm-svn: 247895
* Update the 3.8 release notes with the breaking change information regarding ↵Aaron Ballman2015-09-171-0/+45
| | | | | | AST matchers. llvm-svn: 247887
* Rename AST node matchers to match the AST node names directly. Part of this ↵Aaron Ballman2015-09-171-336/+405
| | | | | | rename also splits recordDecl() (which used to match CXXRecordDecl) into recordDecl() (that matches RecordDecl) and cxxRecordDecl (that matches CXXRecordDecl). Also adds isStruct(), isUnion(), and isClass() narrowing matchers for RecordDecl objects. llvm-svn: 247885
* Updating docs for MSan to describe poison-in-dtor.Naomi Musgrave2015-09-171-0/+10
| | | | | | | | | | | | | | | | | | Summary: Describe the compile and runtime flags to enable MemorySanitizer detection of use-after-destroy. Reviewers: eugenis Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12914 Revise doc description of use-after-dtor. Change wording to specify memory no longer readable. llvm-svn: 247871
* Fixed HasDeclarationMatcher to properly convert all types into decls where ↵Aaron Ballman2015-09-111-3/+69
| | | | | | | | | | | | | | possible. Added objcObjectPointerType(), objcInterfaceDecl(), templateTypeParmType(), injectedClassNameType(), and unresolvedUsingTypenameDecl(). Updated documentation for pointerType() to call out that it does not match ObjCObjectPointerType types. Changed pointsTo() to handle ObjCObjectPointerType as well as PointerType. While this may seem like a lot of unrelated changes, they all relate back to fixing HasDeclarationMatcher. This now allows us to write a matcher like: varDecl(hasType(namedDecl(hasName("Foo")))) that matches code using typedefs, objc interfaces, template type parameters, injected class names, or unresolved using typenames. llvm-svn: 247404
* Docs: Document __builtin_nontemporal_load and __builtin_nontemporal_store.Michael Zolotukhin2015-09-111-0/+20
| | | | | | | | | | Summary: In r247104 I added the builtins for generating non-temporal memory operations, but now I realized that they lack documentation. This patch adds some. Differential Revision: http://reviews.llvm.org/D12785 llvm-svn: 247374
* Docs: Add missing new line before a list.Michael Zolotukhin2015-09-101-0/+1
| | | | llvm-svn: 247360
* CFI: Introduce -fsanitize=cfi-icall flag.Peter Collingbourne2015-09-102-6/+64
| | | | | | | | | | This flag causes the compiler to emit bit set entries for functions as well as runtime bitset checks at indirect call sites. Depends on the new function bitset mechanism. Differential Revision: http://reviews.llvm.org/D11857 llvm-svn: 247238
* add __builtin_unpredictable and convert to metadataSanjay Patel2015-09-021-0/+27
| | | | | | | | | | | | | | | | | | | | | | | This patch depends on r246688 (D12341). The goal is to make LLVM generate different code for these functions for a target that has cheap branches (see PR23827 for more details): int foo(); int normal(int x, int y, int z) { if (x != 0 && y != 0) return foo(); return 1; } int crazy(int x, int y) { if (__builtin_unpredictable(x != 0 && y != 0)) return foo(); return 1; } Differential Revision: http://reviews.llvm.org/D12458 llvm-svn: 246699
* Make trunk release notes point to 3.7, not 3.6Nico Weber2015-09-011-2/+2
| | | | llvm-svn: 246589
* Updating the AST matcher documentation with a new entry; NFC.Aaron Ballman2015-08-281-0/+14
| | | | llvm-svn: 246324
* Adding an AST matcher for namespaceAliasDecl.Aaron Ballman2015-08-281-0/+11
| | | | llvm-svn: 246322
* Add a -gmodules option to the driver and a -dwarf-ext-refs to cc1Adrian Prantl2015-08-271-0/+7
| | | | | | | | | | | | | to enable the use of external type references in the debug info (a.k.a. module debugging). The driver expands -gmodules to "-g -fmodule-format=obj -dwarf-ext-refs" and passes that to cc1. All this does at the moment is set a flag codegenopts. http://reviews.llvm.org/D11958 llvm-svn: 246192
* [Static Analyzer] Checks to catch nullability related issues.Gabor Horvath2015-08-261-0/+92
| | | | | | Differential Revision: http://reviews.llvm.org/D11468 llvm-svn: 246105
* [OPENMP] Info about OpenMP Support in Users Manual, NFC.Alexey Bataev2015-08-241-0/+26
| | | | | | Differential Revision: http://reviews.llvm.org/D12152 llvm-svn: 245823
* Add AST narrowing matchers for inline and anonymous namespaces. Since the ↵Aaron Ballman2015-08-181-4504/+4545
| | | | | | inline keyword can also be specified on a FunctionDecl, this is a polymorphic matcher. llvm-svn: 245337
* Doxygen: add build option to use svg instead of png files for graphsHans Wennborg2015-08-173-1/+11
| | | | | | Differential Revision: http://reviews.llvm.org/D11994 llvm-svn: 245259
* Fix AST matcher documentation.Manuel Klimek2015-08-142-84/+245
| | | | | | | | | | | Fix a bug in the matcher docs where callExpr(on(...)) was in the examples, but didn't work (on() only works for memberCallExpr). Fix a bug in the doc dump script that was introduced in r231575 when removing a regexp capture without adapting the code that uses the captures. llvm-svn: 245040
* Docs: keep copyright years up-to-dateHans Wennborg2015-08-121-1/+2
| | | | llvm-svn: 244797
* Docs: update clang-cl command-line documentationHans Wennborg2015-08-121-22/+59
| | | | llvm-svn: 244794
* ReleaseNotes: Small version nbr fixHans Wennborg2015-08-121-1/+1
| | | | llvm-svn: 244761
* Add missing documentation for conversionDecl; NFC.Aaron Ballman2015-08-111-0/+12
| | | | llvm-svn: 244669
* Add a polymorphic AST matcher for testing whether a constructor or a ↵Aaron Ballman2015-08-111-0/+26
| | | | | | conversion declaration is marked as explicit or not. llvm-svn: 244666
* Add an AST matcher to match member intializers of a CXXCtorInitializer.Aaron Ballman2015-08-111-0/+17
| | | | llvm-svn: 244662
* Fix typo.Nick Lewycky2015-08-101-1/+1
| | | | llvm-svn: 244490
* Add new llvm.loop.unroll.enable metadata for use with "#pragma unroll".Mark Heffernan2015-08-101-4/+16
| | | | | | | | | | | | | | | | | | | | | | This change adds the new unroll metadata "llvm.loop.unroll.enable" which directs the optimizer to unroll a loop fully if the trip count is known at compile time, and unroll partially if the trip count is not known at compile time. This differs from "llvm.loop.unroll.full" which explicitly does not unroll a loop if the trip count is not known at compile time With this change "#pragma unroll" generates "llvm.loop.unroll.enable" rather than "llvm.loop.unroll.full" metadata. This changes the semantics of "#pragma unroll" slightly to mean "unroll aggressively (fully or partially)" rather than "unroll fully or not at all". The motivating example for this change was some internal code with a loop marked with "#pragma unroll" which only sometimes had a compile-time trip count depending on template magic. When the trip count was a compile-time constant, everything works as expected and the loop is fully unrolled. However, when the trip count was not a compile-time constant the "#pragma unroll" explicitly disabled unrolling of the loop(!). Removing "#pragma unroll" caused the loop to be unrolled partially which was desirable from a performance perspective. llvm-svn: 244467
* Add WebKit brace style configuration option.Roman Kashitsyn2015-08-101-1/+3
| | | | | | | | | | | | | | | | | | Summary: Add brace style `BS_WebKit` as described on https://www.webkit.org/coding/coding-style.html: * Function definitions: place each brace on its own line. * Other braces: place the open brace on the line preceding the code block; place the close brace on its own line. Set brace style used in `getWebKitStyle()` to the newly added `BS_WebKit`. Reviewers: djasper, klimek Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D11837 llvm-svn: 244446
* Add flags to disable profile generation.Diego Novillo2015-08-051-0/+13
| | | | | | | | | | | | This patch adds flags -fno-profile-instr-generate and -fno-profile-instr-use, and the GCC aliases -fno-profile-generate and -fno-profile-use. These flags are used in situations where users need to disable profile generation or use for specific files in a build, without affecting other files. llvm-svn: 244153
* Add missing atomic libcall support.James Y Knight2015-08-051-0/+3
| | | | | | | | | | Support for emitting libcalls for __atomic_fetch_nand and __atomic_{add,sub,and,or,xor,nand}_fetch was missing; add it, and some test cases. Differential Revision: http://reviews.llvm.org/D10847 llvm-svn: 244063
* Add AST matchers for narrowing constructors that are default, copy, or move ↵Aaron Ballman2015-08-051-0/+52
| | | | | | constructors, as well as functionality to determine whether a ctor initializer is a base initializer. llvm-svn: 244036
* Update mailing list references to lists.llvm.orgTanya Lattner2015-08-053-3/+3
| | | | llvm-svn: 244000
* Grammar: Don't imply that a program wouldn't want a person as its output.Douglas Katzman2015-08-031-2/+2
| | | | | | (Because, hey, who wouldn't?) llvm-svn: 243901
* [libFuzzer] minimal documentation on data-flow-guided fuzzingKostya Serebryany2015-07-311-0/+27
| | | | llvm-svn: 243793
* Add -femulated-tls flag to select the emulated TLS model.Chih-Hung Hsieh2015-07-281-0/+7
| | | | | | | | | This will be used for old targets like Android that do not support ELF TLS models. Differential Revision: http://reviews.llvm.org/D10524 llvm-svn: 243441
* Add an AST matcher, isFinal(), for testing whether a method or class ↵Aaron Ballman2015-07-241-0/+31
| | | | | | declaration are marked final. llvm-svn: 243107
* Updating the documentation for the hasAttr AST matcher, which behaves ↵Aaron Ballman2015-07-231-1/+2
| | | | | | somewhat differently when used within clang-query. Fixes PR24217. llvm-svn: 243029
* Something was unbalanced, and it wasn't the parentheses. ;-) Reverts r242915.Aaron Ballman2015-07-221-1/+1
| | | | llvm-svn: 242927
* Balancing parenthesis in comments and documentation; NFC.Aaron Ballman2015-07-221-1/+1
| | | | llvm-svn: 242915
* Doxygen: Enable autobrief feature, matching llvm config/coding standards.James Dennett2015-07-161-2/+2
| | | | | | | | | | | | Summary: This corresponds to the change made in r237417 - "Doxygen: Enable autobrief feature and update coding standards." Reviewers: eliben Subscribers: eliben, cfe-commits Differential Revision: http://reviews.llvm.org/D11281 llvm-svn: 242485
* Add the ability to AST match a variable declaration that is an exception ↵Aaron Ballman2015-07-151-3/+15
| | | | | | variable. llvm-svn: 242303
* CodeGen: Improve CFI type blacklisting mechanism.Peter Collingbourne2015-07-151-16/+36
| | | | | | | | | | We now use the sanitizer special case list to decide which types to blacklist. We also support a special blacklist entry for types with a uuid attribute, which are generally COM types whose virtual tables are defined externally. Differential Revision: http://reviews.llvm.org/D11096 llvm-svn: 242286
* docs/conf.py: update version to 3.8Hans Wennborg2015-07-141-2/+2
| | | | llvm-svn: 242240
* ReleaseNotes.rst: Bump version to 3.8Hans Wennborg2015-07-141-21/+7
| | | | | | The notes for 3.7 are on the 3.7 branch. llvm-svn: 242238
* Update documentation for unroll pragmas on loops with runtime trip counts.Mark Heffernan2015-07-131-5/+5
| | | | | | | | This change updates the documentation for the loop unrolling pragma behavior change in r242047. Specifically, with that change "#pragma unroll" will not unroll loops with a runtime trip count. llvm-svn: 242048
* clang-format: Add Mozilla brace breaking styleBirunthan Mohanathas2015-07-121-0/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D10883 llvm-svn: 241986
* Add GCC-compatible flags -fprofile-generate and -fprofile-use.Diego Novillo2015-07-091-0/+39
| | | | | | | | | | | | | | | | | | This patch adds support for specifying where the profile is emitted in a way similar to GCC. These flags are used to specify directories instead of filenames. When -fprofile-generate=DIR is used, the compiler will generate code to write to <DIR>/default.profraw. The patch also adds a couple of extensions: LLVM_PROFILE_FILE can still be used to override the directory and file name to use and -fprofile-use accepts both directories and filenames. To simplify the set of flags used in the backend, all the flags get canonicalized to -fprofile-instr-{generate,use} when passed to the backend. The decision to use a default name for the profile is done in the driver. llvm-svn: 241825
* Update PCHInternals.rst to document PCH wrapped in object file containers.Adrian Prantl2015-07-081-8/+18
| | | | llvm-svn: 241690
* Grammar bug. NFCDouglas Katzman2015-07-061-1/+1
| | | | llvm-svn: 241451
* clang-format: Add MacroBlock{Begin,End} optionsBirunthan Mohanathas2015-07-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MacroBlockBegin and MacroBlockEnd options make matching macro identifiers behave like '{' and '}', respectively, in terms of indentation. Mozilla code, for example, uses several macros that begin and end a scope. Previously, Clang-Format removed the indentation resulting in: MACRO_BEGIN(...) MACRO_ENTRY(...) MACRO_ENTRY(...) MACRO_END Now, using the options MacroBlockBegin: "^[A-Z_]+_BEGIN$" MacroBlockEnd: "^[A-Z_]+_END$" will yield the expected result: MACRO_BEGIN(...) MACRO_ENTRY(...) MACRO_ENTRY(...) MACRO_END Differential Revision: http://reviews.llvm.org/D10840 llvm-svn: 241363
OpenPOWER on IntegriCloud