[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