diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e1ad84a4d2..5b048627c9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-06-26 Simon Marchi + + * common/diagnostics.h (DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER): + New macro. + * ada-lex.l: Ignore deprecated register warnings. + 2017-06-25 Simon Marchi * main.c (get_init_files): Replace "SYSTEM_GDBINIT + diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l index 0825290214..fe97352d85 100644 --- a/gdb/ada-lex.l +++ b/gdb/ada-lex.l @@ -41,6 +41,14 @@ POSEXP (e"+"?{NUM10}) %{ +#include "common/diagnostics.h" + +/* Some old versions of flex generate code that uses the "register" keyword, + which clang warns about. This was observed for example with flex 2.5.35, + as shipped with macOS 10.12. */ +DIAGNOSTIC_PUSH +DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER + #define NUMERAL_WIDTH 256 #define LONGEST_SIGN ((ULONGEST) 1 << (sizeof(LONGEST) * HOST_CHAR_BIT - 1)) @@ -648,3 +656,5 @@ dummy_function ada_flex_use[] = { (dummy_function) yyunput }; + +DIAGNOSTIC_POP diff --git a/gdb/common/diagnostics.h b/gdb/common/diagnostics.h index 5a63bfd8d4..35bacf25bb 100644 --- a/gdb/common/diagnostics.h +++ b/gdb/common/diagnostics.h @@ -33,8 +33,11 @@ #ifdef __clang__ # define DIAGNOSTIC_IGNORE_SELF_MOVE DIAGNOSTIC_IGNORE ("-Wself-move") +# define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER \ + DIAGNOSTIC_IGNORE ("-Wdeprecated-register") #else # define DIAGNOSTIC_IGNORE_SELF_MOVE +# define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER #endif #endif /* COMMON_DIAGNOSTICS_H */