]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/testsuite/lib/compiler.cc
Copyright updates for 2007.
[thirdparty/binutils-gdb.git] / gdb / testsuite / lib / compiler.cc
index aa35c7510ff8240311b70d4298ec072fc76f07bd..71d23bd787bd8fbf9528f39507c710c5b4e1308c 100644 (file)
@@ -1,34 +1,64 @@
-/* Often the behavior of any particular test depends upon what compiler was
-   used to compile the test.  As each test is compiled, this file is
-   preprocessed by the same compiler used to compile that specific test
-   (different tests might be compiled by different compilers, particularly
-   if compiled at different times), and used to generate a *.ci (compiler
-   info) file for that test.
-
-   I.E., when callfuncs is compiled, a callfuncs.ci file will be generated,
-   which can then be sourced by callfuncs.exp to give callfuncs.exp access
-   to information about the compilation environment.
-
-   TODO:  It might be a good idea to add expect code that tests each
-   definition made with 'set" to see if one already exists, and if so
-   warn about conflicts if it is being set to something else.  */
-
-#if defined(__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 6
-set supports_template_debugging 1
+/* This test file is part of GDB, the GNU debugger.
+
+   Copyright 1995, 1999, 2003, 2004, 2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+   */
+
+/* This file is exactly like compiler.c.  I could just use compiler.c if
+   I could be sure that every C++ compiler accepted extensions of ".c".  */
+
+/* Note the semicolon at the end of this line.  Older versions of
+   hp c++ have a bug in string preprocessing: if the last token on a
+   line is a string, then the preprocessor concatenates the next line
+   onto the current line and eats the newline!  That messes up TCL of
+   course.  That happens with HP aC++ A.03.13, but it no longer happens
+   with HP aC++ A.03.45. */
+
+set compiler_info "unknown" ;
+
+#if defined (__GNUC__)
+#if defined (__GNUC_PATCHLEVEL__)
+/* Only GCC versions >= 3.0 define the __GNUC_PATCHLEVEL__ macro.  */
+set compiler_info [join {gcc __GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__} -]
 #else
-set supports_template_debugging 0
+set compiler_info [join {gcc __GNUC__ __GNUC_MINOR__ "unknown"} -]
+#endif
 #endif
 
-#if defined(__cplusplus) 
-set supports_template_debugging 1
-#else
-set supports_template_debugging 0
+#if defined (__HP_CXD_SPP)
+/* older hp ansi c, such as A.11.01.25171.gp, defines this */
+set compiler_info [join {hpcc __HP_CXD_SPP} -]
 #endif
 
-#if defined (__GNUC__)
-set gcc_compiled __GNUC__
-#else
-set gcc_compiled 0
+#if defined (__HP_cc)
+/* newer hp ansi c, such as B.11.11.28706.gp, defines this */
+set compiler_info [join {hpcc __HP_cc} -]
 #endif
 
-return 0
+#if defined (__HP_aCC)
+set compiler_info [join {hpacc __HP_aCC} -]
+#endif
+
+#if defined (__xlc__)
+/* IBM'x xlc compiler. NOTE:  __xlc__ expands to a double quoted string of four
+   numbers seperated by '.'s: currently "7.0.0.0" */
+set need_a_set [regsub -all {\.} [join {xlc __xlc__} -] - compiler_info]
+#endif
+
+#if defined (__ARMCC_VERSION)
+set compiler_info [join {armcc __ARMCC_VERSION} -]
+#endif