llvm-project/clang
Andrey Bokhanko 276055bb2f [GCC] Support for __final specifier
As reported in bug 28473, GCC supports "final" functionality in pre-C++11 code using the __final keyword. Clang currently supports the "final" keyword in accordance with the C++11 specification, however it ALSO supports it in pre-C++11 mode, with a warning.

This patch adds the "__final" keyword for compatibility with GCC in GCC Keywords mode (so it is enabled with existing flags), and issues a warning on its usage (suggesting switching to the C++11 keyword). This patch also adds a regression test for the functionality described. I believe this patch has minimal impact, as it simply adds a new keyword for existing behavior.

This has been validated with check-clang to avoid regressions. Patch is created in reference to revisions 276665.

Patch by Erich Keane.

Differential Revision: https://reviews.llvm.org/D22919

llvm-svn: 277134
2016-07-29 10:42:48 +00:00
..
INPUTS
bindings Enable support for __float128 in Clang and enable it on pertinent platforms 2016-05-09 08:52:33 +00:00
cmake Add CLANG_BUILD_TOOLS as a clang counterpart for LLVM_BUILD_TOOLS 2016-07-10 01:44:00 +00:00
docs [docs] Coverage: Reference the new -output-dir option 2016-07-28 23:22:42 +00:00
examples Revert r276973 "Adjust Registry interface to not require plugins to export a registry" 2016-07-28 17:17:22 +00:00
include [GCC] Support for __final specifier 2016-07-29 10:42:48 +00:00
lib [GCC] Support for __final specifier 2016-07-29 10:42:48 +00:00
runtime [CMake] Adding USES_TERMINAL to a few additional custom targets 2016-06-28 20:30:52 +00:00
test [GCC] Support for __final specifier 2016-07-29 10:42:48 +00:00
tools [cc1as] Add MCTargetOptions argument to createAsmBackend 2016-07-25 17:18:44 +00:00
unittests clang-format: Fix incorrect detection of QT-signals access specifier. 2016-07-27 10:13:24 +00:00
utils [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
www [analyzer] Update the web manual for checker developers. 2016-07-28 20:13:14 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format
.clang-tidy Try to use readability-identifier-naming check on Clang. 2016-04-13 08:59:49 +00:00
.gitignore Add the clang debug info test directory to .gitignore as it's managed separately. 2016-01-29 01:35:55 +00:00
CMakeLists.txt Support setting default value for -rtlib at build time 2016-07-27 08:15:54 +00:00
CODE_OWNERS.TXT Added Anastasia Stulova as a code owner for OpenCL 2016-02-03 18:51:19 +00:00
INSTALL.txt
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:38:44 +00:00
ModuleInfo.txt
NOTES.txt
README.txt

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:              http://clang.llvm.org/
Building and using Clang:          http://clang.llvm.org/get_started.html
Clang Static Analyzer:             http://clang-analyzer.llvm.org/
Information on the LLVM project:   http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/