gcc/libcpp
David Malcolm a3998c2fb1 Fix use-after-free lexing unterminated raw strings (PR preprocessor/78811)
gcc/ChangeLog:
	PR preprocessor/78680
	PR preprocessor/78811
	* input.c (struct selftest::lexer_test): Add field
	m_implicitly_expect_EOF.
	(selftest::lexer_error_sink): New class.
	(selftest::lexer_error_sink::s_singleton): New global.
	(selftest::lexer_test::lexer_test): Initialize new field
	"m_implicitly_expect_EOF".
	(selftest::lexer_test::~lexer_test): Conditionalize the
	check for the EOF token on the new field.
	(selftest::test_lexer_string_locations_raw_string_unterminated):
	New function.
	(selftest::input_c_tests): Call the new test.

libcpp/ChangeLog:
	PR preprocessor/78680
	PR preprocessor/78811
	* lex.c (_cpp_lex_direct): Only determine the end-location of
	the token and build a range for non-reserved start locations.
	Do not do it for EOF tokens.

From-SVN: r243721
2016-12-15 18:05:05 +00:00
..
include system.h (HAVE_DESIGNATED_INITIALIZERS, [...]): Do not use "defined" in macros. 2016-11-23 10:06:07 +00:00
po * eo.po: Update. 2016-10-29 02:38:09 +01:00
aclocal.m4
ChangeLog Fix use-after-free lexing unterminated raw strings (PR preprocessor/78811) 2016-12-15 18:05:05 +00:00
ChangeLog.jit
charset.c Fix locations within raw strings 2016-11-17 15:55:26 +00:00
config.in re PR bootstrap/72823 (r239175 causes build failure) 2016-11-16 21:10:27 +01:00
configure re PR bootstrap/72823 (r239175 causes build failure) 2016-11-16 21:10:27 +01:00
configure.ac re PR bootstrap/72823 (r239175 causes build failure) 2016-11-16 21:10:27 +01:00
directives-only.c Update copyright years. 2016-01-04 15:30:50 +01:00
directives.c Spelling suggestions for misspelled preprocessor directives 2016-08-18 18:52:43 +00:00
errors.c Spelling suggestions for misspelled preprocessor directives 2016-08-18 18:52:43 +00:00
expr.c system.h (HAVE_DESIGNATED_INITIALIZERS, [...]): Do not use "defined" in macros. 2016-11-23 10:06:07 +00:00
files.c input.c/libcpp: fix lifetimes of path buffers 2016-10-25 19:24:01 +00:00
identifiers.c Update copyright years. 2016-01-04 15:30:50 +01:00
init.c gcc/ 2016-10-12 01:19:06 +02:00
internal.h On-demand locations within string-literals 2016-08-05 18:08:33 +00:00
lex.c Fix use-after-free lexing unterminated raw strings (PR preprocessor/78811) 2016-12-15 18:05:05 +00:00
line-map.c Implement ~line_maps () 2016-10-25 18:10:44 +00:00
location-example.txt Source range tracking in libcpp and C FE, with bit-packing optimization 2015-11-13 16:29:59 +00:00
macro.c re PR c/7652 (-Wswitch-break : Warn if a switch case falls through) 2016-08-12 10:30:47 +00:00
Makefile.in Update copyright years. 2016-01-04 15:30:50 +01:00
makeucnid.c Update copyright years. 2016-01-04 15:30:50 +01:00
mkdeps.c Update copyright years. 2016-01-04 15:30:50 +01:00
pch.c re PR c/7652 (-Wswitch-break : Warn if a switch case falls through) 2016-08-18 10:28:03 +00:00
symtab.c Update copyright years. 2016-01-04 15:30:50 +01:00
system.h system.h (HAVE_DESIGNATED_INITIALIZERS, [...]): Do not use "defined" in macros. 2016-11-23 10:06:07 +00:00
traditional.c Update copyright years. 2016-01-04 15:30:50 +01:00
ucnid.h Update copyright years. 2016-01-04 15:30:50 +01:00
ucnid.tab Update copyright years. 2016-01-04 15:30:50 +01:00