/* Producer string parsers for GDB.
- Copyright (C) 2012-2018 Free Software Foundation, Inc.
+ Copyright (C) 2012-2022 Free Software Foundation, Inc.
This file is part of GDB.
is NULL or it isn't GCC. */
extern int producer_is_gcc (const char *producer, int *major, int *minor);
-/* Returns true if the given PRODUCER string is Intel or false
- otherwise. Sets the MAJOR and MINOR versions when not NULL.
-
- Internal and external ICC versions have to be taken into account.
- PRODUCER strings for internal releases are slightly different than
- for public ones. Internal releases have a major release number and
- 0 as minor release. External releases have 4 fields, 3 of them are
- not 0 and only two are of interest, major and update.
-
- Examples are:
+/* Check for Intel compilers >= 19.0. */
+extern bool producer_is_icc_ge_19 (const char *producer);
- Public release:
- "Intel(R) Fortran Intel(R) 64 Compiler XE for applications
- running on Intel(R) 64, Version 14.0.1.074 Build 20130716";
- "Intel(R) C++ Intel(R) 64 Compiler XE for applications
- running on Intel(R) 64, Version 14.0.1.074 Build 20130716";
-
- Internal releases:
- "Intel(R) C++ Intel(R) 64 Compiler for applications
- running on Intel(R) 64, Version 18.0 Beta ....". */
+/* Returns true if the given PRODUCER string is Intel or false
+ otherwise. Sets the MAJOR and MINOR versions when not NULL. */
extern bool producer_is_icc (const char *producer, int *major, int *minor);
+/* Returns true if the given PRODUCER string is LLVM (clang/flang) or
+ false otherwise.*/
+extern bool producer_is_llvm (const char *producer);
+
#endif