8sa1-gcc/libcpp
Joseph Myers 175a85b297 Support decimal floating-point constants in C2x.
ISO C2x adds decimal floating point as an optional standard feature.
This patch accordingly makes GCC accept DFP constants (DF, DD, DL, df,
dd, dl suffixes) in strict C2X mode, with a pedwarn-if-pedantic for
older standards and a warning with -Wc11-c2x-compat even in C2x mode
(which in turn requires -Wc11-c2x-compat to be newly passed through to
libcpp).

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc/c-family:
	* c.opt (Wc11-c2x-compat): Add CPP(cpp_warn_c11_c2x_compat)
	CppReason(CPP_W_C11_C2X_COMPAT).

gcc/testsuite:
	* gcc.dg/dfp/c11-constants-1.c, gcc.dg/dfp/c11-constants-2.c,
	gcc.dg/dfp/c2x-constants-1.c, gcc.dg/dfp/c2x-constants-2.c: New
	tests.
	* gcc.dg/dfp/constants-pedantic.c: Use -std=gnu17 explicitly.
	Update expected diagnostics.

libcpp:
	* include/cpplib.h (struct cpp_options): Add dfp_constants and
	cpp_warn_c11_c2x_compat.
	(enum cpp_warning_reason): Add CPP_W_C11_C2X_COMPAT.
	* init.c (struct lang_flags): Add dfp_constants.
	(lang_defaults): Set dfp_constants to 1 for GNUC2X and STDC2X and
	0 for other languages.
	(cpp_set_lang): Set dfp_constants from language.
	(cpp_create_reader): Set cpp_warn_c11_c2x_compat to -1.
	* expr.c (interpret_float_suffix): Mention DFP constants as C2X in
	comment.
	(cpp_classify_number): Do not diagnose DFP constants for languages
	setting dfp_constants, unless cpp_warn_c11_c2x_compat.

From-SVN: r276908
2019-10-11 23:22:52 +01:00
..
include Support decimal floating-point constants in C2x. 2019-10-11 23:22:52 +01:00
po * zh_TW.po: Update. 2019-08-09 23:02:08 +01:00
aclocal.m4 Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
ChangeLog Support decimal floating-point constants in C2x. 2019-10-11 23:22:52 +01:00
ChangeLog.jit
charset.c charset.c (UCS_LIMIT): New macro. 2019-09-26 21:43:51 +00:00
config.in Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
configure iconv.m4 (AM_ICONV_LINK): Don't overwrite CPPFLAGS. 2018-11-07 15:41:21 -07:00
configure.ac Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). 2018-10-31 17:03:16 +00:00
directives-only.c [Preprocessor] small cleanups 2019-08-28 18:43:37 +00:00
directives.c [preprocessor] Popping "" file names 2019-09-06 12:54:19 +00:00
errors.c Update copyright years. 2019-01-01 13:31:55 +01:00
expr.c Support decimal floating-point constants in C2x. 2019-10-11 23:22:52 +01:00
files.c [preprocessor/91639] #includes at EOF 2019-09-05 11:23:48 +00:00
identifiers.c Update copyright years. 2019-01-01 13:31:55 +01:00
init.c Support decimal floating-point constants in C2x. 2019-10-11 23:22:52 +01:00
internal.h internal.h (enum include_type): Remove trailing comma. 2019-10-02 10:22:05 +00:00
lex.c Handle :: tokens in C for C2x. 2019-10-02 01:08:40 +01:00
line-map.c [preprocessor/91991] column location overflow 2019-10-04 19:08:09 +00:00
location-example.txt PR preprocessor/83173: Enhance -fdump-internal-locations output 2018-11-27 16:04:31 +00:00
macro.c Update copyright years. 2019-01-01 13:31:55 +01:00
Makefile.in Update copyright years. 2019-01-01 13:31:55 +01:00
makeucnid.c Update copyright years. 2019-01-01 13:31:55 +01:00
mkdeps.c PR c++/61339 - add mismatch between struct and class [-Wmismatched-tags] to non-bugs 2019-07-09 12:32:49 -06:00
pch.c Update copyright years. 2019-01-01 13:31:55 +01:00
symtab.c Improve memory statistics report readability. 2019-02-26 17:27:52 +00:00
system.h Update copyright years. 2019-01-01 13:31:55 +01:00
traditional.c Update copyright years. 2019-01-01 13:31:55 +01:00
ucnid.h Update copyright years. 2019-01-01 13:31:55 +01:00
ucnid.tab Update copyright years. 2019-01-01 13:31:55 +01:00