llvm-project/clang/www
Richard Smith c90e198107 Fix parsing of enum-base to follow C++11 rules.
Previously we implemented non-standard disambiguation rules to
distinguish an enum-base from a bit-field but otherwise treated a :
after an elaborated-enum-specifier as introducing an enum-base. That
misparses various examples (anywhere an elaborated-type-specifier can
appear followed by a colon, such as within a ternary operator or
_Generic).

We now implement the C++11 rules, with the old cases accepted as
extensions where that seemed reasonable. These amount to:
 * an enum-base must always be accompanied by an enum definition (except
   in a standalone declaration of the form 'enum E : T;')
 * in a member-declaration, 'enum E :' always introduces an enum-base,
   never a bit-field
 * in a type-specifier (or similar context), 'enum E :' is not
   permitted; the colon means whatever else it would mean in that
   context.

Fixed underlying types for enums are also permitted in Objective-C and
under MS extensions, plus as a language extension in all other modes.
The behavior in ObjC and MS extensions modes is unchanged (but the
bit-field disambiguation is a bit better); remaining language modes
follow the C++11 rules.

Fixes PR45726, PR39979, PR19810, PR44941, and most of PR24297, plus C++
core issues 1514 and 1966.
2020-05-08 19:32:00 -07:00
..
analyzer clang analyzer: Fix the webpage rendering 2020-02-17 10:03:20 +01:00
demo [www] Change URLs to HTTPS. 2019-10-24 13:25:15 -07:00
OpenProjects.html [www] Change URLs to HTTPS. 2019-10-24 13:25:15 -07:00
UniversalDriver.html [www] More HTTPS and outdated link fixes. 2019-11-08 14:41:27 -08:00
builtins.py Portable Python script across Python version 2018-12-18 16:04:21 +00:00
carbon-compile.png
clang_video-05-25-2007.html redirecting to llvm.org/devmtg 2018-09-19 18:39:15 +00:00
clang_video-07-25-2007.html redirecting to llvm.org/devmtg 2018-09-19 18:39:15 +00:00
compatibility.html clang: Switch C compilations to C17 by default. 2020-03-02 09:39:26 -08:00
content.css
cxx_compatibility.html [www] Change URLs to HTTPS. 2019-10-24 13:25:15 -07:00
cxx_dr_status.html Fix parsing of enum-base to follow C++11 rules. 2020-05-08 19:32:00 -07:00
cxx_status.html [www] Turn 'Clang 10' boxes green in C++ status pages to reflect release 2020-04-14 18:38:35 -04:00
diagnostics.html [clang][www] Fix typo. NFC 2018-09-29 09:45:21 +00:00
favicon.ico
feature-compile1.png
feature-compile2.png
feature-memory1.png
features.html remove outdated comparison with other open-source c++ compilers 2020-02-11 00:05:16 -07:00
get_involved.html [www] Change URLs to HTTPS. 2019-10-24 13:25:15 -07:00
get_started.html [www] Change URLs to HTTPS. 2019-10-24 13:25:15 -07:00
hacking.html Remove outdated svn/git information from hacking page 2020-01-03 14:13:40 -05:00
index.html remove outdated comparison with other open-source c++ compilers 2020-02-11 00:05:16 -07:00
libstdc++4.4-clang0x.patch
libstdc++4.6-clang11.patch
libstdc++4.7-clang11.patch
make_cxx_dr_status [www] Update make_cxx_dr_status for v10; regenerate cxx_dr_status.html 2020-04-15 10:45:00 -04:00
menu.css
menu.html.incl remove outdated comparison with other open-source c++ compilers 2020-02-11 00:05:16 -07:00
related.html [www] Change URLs to HTTPS. 2019-10-24 13:25:15 -07:00
robots.txt