[committed] Workaround buggy clang++ parser

Jakub Jelinek jakub@redhat.com
Tue Jun 20 07:13:00 GMT 2017


Hi!

Apparently clang++ 3.2 and later (including current trunk, according to
godbolt https://godbolt.org/g/ekDs6H ) has a bug in its C++ parser that
it fails to properly parse the recent ubsan.h.

I've committed a workaround for that as obvious, after
bootstrapping/regtesting it on x86_64-linux and i686-linux.

2017-06-20  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/81125
	* ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
	by removing enum keyword.
	(ubsan_type_descriptor): Likewise.  Formatting fix.

--- gcc/ubsan.h.jj	2017-06-19 22:56:36.000000000 +0200
+++ gcc/ubsan.h	2017-06-20 00:31:16.714978973 +0200
@@ -55,8 +55,9 @@ extern bool ubsan_expand_objsize_ifn (gi
 extern bool ubsan_expand_vptr_ifn (gimple_stmt_iterator *);
 extern bool ubsan_instrument_unreachable (gimple_stmt_iterator *);
 extern tree ubsan_create_data (const char *, int, const location_t *, ...);
-extern tree ubsan_type_descriptor (tree, enum ubsan_print_style = UBSAN_PRINT_NORMAL);
-extern tree ubsan_encode_value (tree, enum ubsan_encode_value_phase
+extern tree ubsan_type_descriptor (tree, ubsan_print_style
+					 = UBSAN_PRINT_NORMAL);
+extern tree ubsan_encode_value (tree, ubsan_encode_value_phase
 				      = UBSAN_ENCODE_VALUE_GENERIC);
 extern bool is_ubsan_builtin_p (tree);
 extern tree ubsan_build_overflow_builtin (tree_code, location_t, tree, tree,

	Jakub



More information about the Gcc-patches mailing list