]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
New test for SunStudio `restrict' handling.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Mon, 9 Mar 2009 18:25:18 +0000 (19:25 +0100)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Mon, 9 Mar 2009 18:25:18 +0000 (19:25 +0100)
* tests/c.at (AC_C_RESTRICT and C++): New test.
Prompted by bug report from Rolf Vandevaart.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
ChangeLog
tests/c.at

index 413950ff7af8b44a74e37febfea09c0363ef479c..c81ac4c9f03ff5606ea88b0410f9105fd9be3bcb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       New test for SunStudio `restrict' handling.
+       * tests/c.at (AC_C_RESTRICT and C++): New test.
+       Prompted by bug report from Rolf Vandevaart.
+
 2009-03-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        Manual: testsuite depends on package.m4.
index d7a1886b45512a8995ca4bd41ea0bfa692d4ca72..33b2684b7605de6caf17b0435e89904926ee9897 100644 (file)
@@ -2,8 +2,8 @@
 
 AT_BANNER([C low level compiling/preprocessing macros.])
 
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008 Free
-# Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009
+# 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
@@ -259,3 +259,66 @@ AC_DEFINE([__EXTENSIONS__], [1], [Manually defined for Solaris])
 ]])
 
 AT_CLEANUP
+
+
+## ----------------------- ##
+## AC_C_RESTRICT and C++.  ##
+## ----------------------- ##
+
+AT_SETUP([AC_C_RESTRICT and C++])
+
+# In some compiler suites, the left hand doesn't know about everything
+# the right hand does; or the user mixes the C compiler from one suite
+# with the C++ compiler from another.  In this case, Sun WorkShop CC
+# not like the _Restrict accepted by cc.
+
+AT_DATA([configure.ac],
+[[AC_INIT
+AC_PROG_CC
+AC_PROG_CXX
+AC_C_RESTRICT
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+]])
+
+AT_DATA([Makefile.in],
+[[CC = @CC@
+CXX = @CXX@
+CFLAGS = @CFLAGS@
+CXXFLAGS = @CXXFLAGS@
+CPPFLAGS = -I. @CPPFLAGS@
+OBJEXT = @OBJEXT@
+all: foo.$(OBJEXT) bar.$(OBJEXT)
+cpp-works:
+       $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c cpp-works.cpp
+foo.$(OBJEXT): foo.c
+       $(CC) $(CPPFLAGS) $(CFLAGS) -c foo.c
+bar.$(OBJEXT): bar.cpp
+       $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c bar.cpp
+]])
+
+AT_DATA([foo.c],
+[[#include <config.h>
+
+int foo (int * restrict i1, int * restrict i2)
+{
+  return i1[0] + i2[0];
+}
+]])
+
+cp foo.c bar.cpp
+
+AT_DATA([cpp-works.cpp],
+[[// This file is just to test whether we have a working C++ compiler at all
+class foo { int x; };
+class foo foobar;
+]])
+
+AT_CHECK([autoconf])
+AT_CHECK([autoheader])
+AT_CHECK([./configure], [], [ignore], [ignore])
+AT_CHECK([${MAKE-make} cpp-works || exit 77], [], [ignore], [ignore])
+AT_CHECK([${MAKE-make}], [], [ignore], [ignore])
+
+AT_CLEANUP