summaryrefslogtreecommitdiffstats
path: root/clang/docs
Commit message (Collapse)AuthorAgeFilesLines
...
* __declspec is not a core Clang language extension. Instead, require ↵Aaron Ballman2015-05-261-1/+4
| | | | | | | -fms-extensions or -fborland to enable the language extension. Note: __declspec is also temporarily enabled when compiling for a CUDA target because there are implementation details relying on __declspec(property) support currently. When those details change, __declspec should be disabled for CUDA targets. llvm-svn: 238238
* Going out on a limb and guessing that someone viewing the 3.7 release notes ↵Aaron Ballman2015-05-261-2/+2
| | | | | | may instead want to view 3.6 instead of 3.5. llvm-svn: 238212
* Add clarifying note that sampling-based profiles cannot be used for code ↵Diego Novillo2015-05-221-0/+4
| | | | | | coverage. llvm-svn: 238031
* Updating the documentation to include an operator! for negative capability ↵Aaron Ballman2015-05-221-0/+3
| | | | | | support. llvm-svn: 238020
* Implement no_sanitize attribute.Peter Collingbourne2015-05-151-0/+2
| | | | | | Differential Revision: http://reviews.llvm.org/D9631 llvm-svn: 237463
* Fix a #include cycle in the libclang headers. "Eventually" is now.Richard Smith2015-05-141-0/+4
| | | | llvm-svn: 237320
* Made considerable updates to the documentation explaining how to add a new ↵Aaron Ballman2015-05-131-155/+267
| | | | | | attribute to clang. Cleans up some of the existing wording, as well as adding new information and better explanations. llvm-svn: 237268
* Fix indentation problem introduced in r236964. NFCJonathan Roelofs2015-05-111-10/+10
| | | | llvm-svn: 236965
* Fix formatting of a few code blocks. NFCJonathan Roelofs2015-05-111-6/+9
| | | | llvm-svn: 236964
* Update docs for SanitizerCoverage.Alexey Samsonov2015-05-072-17/+23
| | | | llvm-svn: 236793
* Fix some glitches in the MSVCCompatibility documentDavid Majnemer2015-05-071-2/+2
| | | | | | | | - Fix the formatting of the "Exceptions and SEH" section. - Make the "Complete" text for "Thread-safe initialization of local statics" green. llvm-svn: 236706
* Note that we support 'throw' for the MS ABI.David Majnemer2015-05-071-2/+3
| | | | llvm-svn: 236698
* [MS ABI] Implement thread-safe initialization using the MSVC 2015 ABIDavid Majnemer2015-05-071-4/+5
| | | | | | | | | The MSVC 2015 ABI utilizes a rather straightforward adaptation of the algorithm found in the appendix of N2382. While we are here, implement support for emitting cleanups if an exception is thrown while we are intitializing a static local variable. llvm-svn: 236697
* [docs] Update SanitizerCoverage docs.Sergey Matveev2015-05-061-6/+12
| | | | llvm-svn: 236641
* Update MSVC compatibility doc note about exceptionsReid Kleckner2015-05-041-3/+10
| | | | llvm-svn: 236458
* Mention PPCallbacks interface change in release notes.Richard Smith2015-05-041-1/+3
| | | | llvm-svn: 236406
* clang-format: Add ability to align assignment operators.Daniel Jasper2015-04-291-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | In Objective-C some style guides use a style where assignment operators are aligned, in an effort to increase code readability. This patch adds an option to the format library which allows this functionality. It is disabled by default for all the included styles, so it must be explicitly enabled. The option will change code such as: - (void)method { NSNumber *one = @1; NSNumber *twentyFive = @25; } to: - (void)method { NSNumber *one = @1; NSNumber *twentyFive = @25; } Patch by Matt Oakes. Thank you! Accidentally reformatted all the tests... llvm-svn: 236100
* Support generating NMake/Jom-style depfiles.Paul Robinson2015-04-271-0/+19
| | | | | | | | | | | | | | | NMake is a Make-like builder that comes with Microsoft Visual Studio. Jom (https://wiki.qt.io/Jom) is an NMake-compatible build tool. Dependency files for NMake/Jom need to use double-quotes to wrap filespecs containing special characters, instead of the backslash escapes that GNU Make wants. Adds the -MV option, which specifies to use double-quotes as needed instead of backslash escapes when writing the dependency file. Differential Revision: http://reviews.llvm.org/D9260 llvm-svn: 235903
* Fix clang docs build.Sergey Matveev2015-04-231-2/+2
| | | | llvm-svn: 235650
* Add clang/docs/SanitizerCoverage.rstSergey Matveev2015-04-232-0/+349
| | | | | | Moved from https://code.google.com/p/address-sanitizer/wiki/AsanCoverage llvm-svn: 235643
* Implement CFI type checks for non-virtual calls.Peter Collingbourne2015-04-022-5/+24
| | | | | | | | | | | | This uses the same class metadata currently used for virtual call and cast checks. The new flag is -fsanitize=cfi-nvcall. For consistency, the -fsanitize=cfi-vptr flag has been renamed -fsanitize=cfi-vcall. Differential Revision: http://reviews.llvm.org/D8756 llvm-svn: 233874
* [modules] Restrict the module use-declaration to only appear in top-levelRichard Smith2015-03-261-8/+17
| | | | | | | modules, and allow sub-modules of a module with a use-declaration to make use of the nominated modules. llvm-svn: 233323
* [UBSan] Don't allow to use UBSan with anything except for ASan.Alexey Samsonov2015-03-201-2/+2
| | | | | | | | | | We are not able to make a reliable solution for using UBSan together with other sanitizers with runtime support (and sanitizer_common). Instead, we want to follow the path used for LSan: have a "standalone" UBSan tool, and plug-in UBSan that would be explicitly embedded into specific sanitizers (in short term, it will be only ASan). llvm-svn: 232829
* C++14: Disable sized deallocation by default due to ABI breakageReid Kleckner2015-03-201-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are no widely deployed standard libraries providing sized deallocation functions, so we have to punt and ask the user if they want us to use sized deallocation. In the future, when such libraries are deployed, we can teach the driver to detect them and enable this feature. N3536 claimed that a weak thunk from sized to unsized deallocation could be emitted to avoid breaking backwards compatibility with standard libraries not providing sized deallocation. However, this approach and other variations don't work in practice. With the weak function approach, the thunk has to have default visibility in order to ensure that it is overridden by other DSOs providing sized deallocation. Weak, default visibility symbols are particularly expensive on MachO, so John McCall was considering disabling this feature by default on Darwin. It also changes behavior ELF linking behavior, causing certain otherwise unreferenced object files from an archive to be pulled into the link. Our second approach was to use an extern_weak function declaration and do an inline conditional branch at the deletion call site. This doesn't work because extern_weak only works on MachO if you have some archive providing the default value of the extern_weak symbol. Arranging to provide such an archive has the same challenges as providing the symbol in the standard library. Not to mention that extern_weak doesn't really work on COFF. Reviewers: rsmith, rjmccall Differential Revision: http://reviews.llvm.org/D8467 llvm-svn: 232788
* Implement bad cast checks using control flow integrity information.Peter Collingbourne2015-03-142-0/+60
| | | | | | | | | | | This scheme checks that pointer and lvalue casts are made to an object of the correct dynamic type; that is, the dynamic type of the object must be a derived class of the pointee type of the cast. The checks are currently only introduced where the class being casted to is a polymorphic class. Differential Revision: http://reviews.llvm.org/D8312 llvm-svn: 232241
* Remove duplicate "the". N+1 redundancy is not useful here.Nico Weber2015-03-121-1/+1
| | | | llvm-svn: 232086
* [docs] Update the doxygen configuration file.Logan Chien2015-03-125-1217/+1790
| | | | | | | | | | Update the doxygen configuration file and the Makefile build rules to provide better output (simply use the default stylesheet and template from the Doxygen distribution.) This CL has upgrade doxygen.cfg.in to Doxygen 1.8.6. llvm-svn: 232066
* [docs] Replace the doxygen qch option properly.Logan Chien2015-03-121-4/+11
| | | | llvm-svn: 232065
* docs: Document byte arrays.Peter Collingbourne2015-03-121-16/+26
| | | | llvm-svn: 231994
* MS ABI: Mark 'throw' as implemented in the compatibility docDavid Majnemer2015-03-111-2/+2
| | | | llvm-svn: 231953
* Document __has_feature(modules) in LanguageExtensionsBen Langmuir2015-03-101-0/+8
| | | | | | | | Fixes PR18985 Patch by Vassil Vassilev! llvm-svn: 231789
* [UBSan] Split -fsanitize=shift into -fsanitize=shift-base and ↵Alexey Samsonov2015-03-091-1/+3
| | | | | | | | | | | | | | | | -fsanitize=shift-exponent. This is a recommit of r231150, reverted in r231409. Turns out that -fsanitize=shift-base check implementation only works if the shift exponent is valid, otherwise it contains undefined behavior itself. Make sure we check that exponent is valid before we proceed to check the base. Make sure that we actually report invalid values of base or exponent if -fsanitize=shift-base or -fsanitize=shift-exponent is specified, respectively. llvm-svn: 231711
* ASTMatchers: Make AST_POLYMORPHIC_SUPPORTED_TYPES a variadic macroBenjamin Kramer2015-03-071-2/+2
| | | | | | C++11 finally allows us to use this C99 feature. llvm-svn: 231575
* Revert "[UBSan] Split -fsanitize=shift into -fsanitize=shift-base and ↵Alexey Samsonov2015-03-051-3/+1
| | | | | | | | | | | -fsanitize=shift-exponent." It's not that easy. If we're only checking -fsanitize=shift-base we still need to verify that exponent has sane value, otherwise UBSan-inserted checks for base will contain undefined behavior themselves. llvm-svn: 231409
* [UBSan] Split -fsanitize=shift into -fsanitize=shift-base and ↵Alexey Samsonov2015-03-031-1/+3
| | | | | | | | | | | | | | | | | | | | | -fsanitize=shift-exponent. -fsanitize=shift is now a group that includes both these checks, so exisiting users should not be affected. This change introduces two new UBSan kinds that sanitize only left-hand side and right-hand side of shift operation. In practice, invalid exponent value (negative or too large) tends to cause more portability problems, including inconsistencies between different compilers, crashes and inadequeate results on non-x86 architectures etc. That is, -fsanitize=shift-exponent failures should generally be addressed first. As a bonus, this change simplifies CodeGen implementation for emitting left shift (separate checks for base and exponent are now merged by the existing generic logic in EmitCheck()), and LLVM IR for these checks (the number of basic blocks is reduced). llvm-svn: 231150
* [msan] Change track-origins default mode from 1 to 2.Evgeniy Stepanov2015-02-262-26/+16
| | | | | | | | | | | Change -fsanitize-memory-track-origins to be equivalent to -fsanitize-memory-track-origins=2. Track-origins=2 provides a lot more detailed reports at the cost of some additional slowdown (ranging from none to, sometimes, 3x; ~3% average on SPEC2006). llvm-svn: 230644
* docs: Document CFI padding and all-ones optimizations. Link to viewvc.Peter Collingbourne2015-02-261-1/+30
| | | | llvm-svn: 230588
* Allow (Object *)kMyGlobalCFObj casts without bridgingBen Langmuir2015-02-251-1/+9
| | | | | | | | | | | | | | | | Previously we allowed these casts only for constants declared in system headers, which we assume are retain/release-neutral. Now also allow them for constants in user headers, treating them as +0. Practically, this means that we will now allow: id x = (id)kMyGlobalConst; But unlike with system headers we cannot mix them with +1 values: id y = (id)(b ? kMyGlobalConst : [Obj newValAtPlusOne]); // error id z = (id)(b ? kSystemGlobalConst: [Obj newValAtPlusOne]); // OK Thanks to John for suggesting this improvement. llvm-svn: 230534
* docs: Document optimizations in control flow integrity design doc.Peter Collingbourne2015-02-251-9/+118
| | | | llvm-svn: 230458
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-251-3/+0
| | | | llvm-svn: 230454
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-251-0/+3
| | | | | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. This reapplies r230044 with a fixed configure+make build and updated dependencies and testcase requirements. Over the last iteration this version adds - missing target requirements for testcases that specify an x86 triple, - a missing clangCodeGen.a dependency to libClang.a in the make build. rdar://problem/19104245 llvm-svn: 230423
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-241-3/+0
| | | | | | | This reverts commit r230305. Off to fix another round of missing dependencies on various platforms. llvm-svn: 230309
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-241-0/+3
| | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 This reapplies r230044 with a fixed configure+make build and updated dependencies. Take 3. llvm-svn: 230305
* CFI: Improve design doc with larger virtual tables and asm examples.Peter Collingbourne2015-02-231-9/+77
| | | | llvm-svn: 230254
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-211-3/+0
| | | | | | | | This reverts commit 230099. The Linux configure+make build variant still needs some work. llvm-svn: 230103
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-201-0/+3
| | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 This reapplies r230044 with a fixed configure+make build and updated dependencies. Take 2. llvm-svn: 230089
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-201-3/+0
| | | | | | | | This reverts commit r230067. Investigating another batch of problems found by the bots. llvm-svn: 230073
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-201-0/+3
| | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 This reapplies r230044 with a fixed configure+make build and updated dependencies. llvm-svn: 230067
* Implement Control Flow Integrity for virtual calls.Peter Collingbourne2015-02-204-0/+138
| | | | | | | | | | | | | | | This patch introduces the -fsanitize=cfi-vptr flag, which enables a control flow integrity scheme that checks that virtual calls take place using a vptr of the correct dynamic type. More details in the new docs/ControlFlowIntegrity.rst file. It also introduces the -fsanitize=cfi flag, which is currently a synonym for -fsanitize=cfi-vptr, but will eventually cover all CFI checks implemented in Clang. Differential Revision: http://reviews.llvm.org/D7424 llvm-svn: 230055
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-201-3/+0
| | | | | | | | | This reverts commit r230044 while dealing with buildbot breakage. Conflicts: test/Modules/module_container.m llvm-svn: 230052
OpenPOWER on IntegriCloud