Commit f1bf410c by Jerry Quinn Committed by Jerry Quinn

directives.c (do_linemarker, do_line): Use CPP_STRING for ignored enum value.

2009-07-17  Jerry Quinn  <jlquinn@optonline.net>

	* directives.c (do_linemarker, do_line): Use CPP_STRING for
	ignored enum value.
	* files.c (find_file_in_dir): Add cast from void* to char*.
	* symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
	* Makefile.in: (WARN_CFLAGS): Use general and C-specific
	warnings.
	(CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
	ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
	COMPILER_FLAGS): New.
	(DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
	(COMPILE.base): Use COMPILER instead of CC.  Use COMPILER_FLAGS
	instead of ALL_CFLAGS.
	* configure.ac: Invoke AC_PROG_CXX.  Separate C-specific warnings
	from other warnings.  Add -Wc++-compat to C-specific warnings.
	Check for --enable-build-with-cxx.  Set and substitute
	ENABLE_BUILD_WITH_CXX.  Invoke ZW_PROG_COMPILER_DEPENDENCIES
	according to ENABLE_BUILD_WITH_CXX.  Invoke AC_LANG before
	AC_CHECK_HEADERS.
	* configure: Rebuild.
	* include/cpp-id-data.h: Remove extern "C".
	* include/line-map.h: Likewise.
	* include/mkdeps.h: Likewise.
	* include/symtab.h: Likewise.
	* internal.h: Likewise.

From-SVN: r149763
parent 4f589751
2009-07-17 Jerry Quinn <jlquinn@optonline.net>
* directives.c (do_linemarker, do_line): Use CPP_STRING for
ignored enum value.
* files.c (find_file_in_dir): Add cast from void* to char*.
* symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
* Makefile.in: (WARN_CFLAGS): Use general and C-specific
warnings.
(CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
COMPILER_FLAGS): New.
(DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
(COMPILE.base): Use COMPILER instead of CC. Use COMPILER_FLAGS
instead of ALL_CFLAGS.
* configure.ac: Invoke AC_PROG_CXX. Separate C-specific warnings
from other warnings. Add -Wc++-compat to C-specific warnings.
Check for --enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Invoke ZW_PROG_COMPILER_DEPENDENCIES
according to ENABLE_BUILD_WITH_CXX. Invoke AC_LANG before
AC_CHECK_HEADERS.
* configure: Rebuild.
* include/cpp-id-data.h: Remove extern "C".
* include/line-map.h: Likewise.
* include/mkdeps.h: Likewise.
* include/symtab.h: Likewise.
* internal.h: Likewise.
2009-06-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* directives.c (parse_include): Add location argument. Update all
......
......@@ -33,7 +33,10 @@ AUTOHEADER = @AUTOHEADER@
CATALOGS = $(patsubst %,po/%,@CATALOGS@)
CC = @CC@
CFLAGS = @CFLAGS@
WARN_CFLAGS = @WARN_CFLAGS@ @WARN_PEDANTIC@ @WERROR@
WARN_CFLAGS = @warn@ @c_warn@ @WARN_PEDANTIC@ @WERROR@
CXX = @CXX@
CXXFLAGS = @CXXFLAGS@
WARN_CXXFLAGS = @warn@ @WARN_PEDANTIC@ @WERROR@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
EXEEXT = @EXEEXT@
......@@ -50,7 +53,8 @@ RANLIB = @RANLIB@
SHELL = @SHELL@
USED_CATALOGS = @USED_CATALOGS@
XGETTEXT = @XGETTEXT@
DEPMODE = @CCDEPMODE@
CCDEPMODE = @CCDEPMODE@
CXXDEPMODE = @CXXDEPMODE@
DEPDIR = @DEPDIR@
datarootdir = @datarootdir@
......@@ -68,6 +72,20 @@ INCLUDES = -I$(srcdir) -I. -I$(srcdir)/../include @INCINTL@ \
-I$(srcdir)/include
ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS)
ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(INCLUDES) $(CPPFLAGS)
# The name of the compiler to use.
ENABLE_BUILD_WITH_CXX = @ENABLE_BUILD_WITH_CXX@
ifneq ($(ENABLE_BUILD_WITH_CXX),yes)
COMPILER = $(CC)
COMPILER_FLAGS = $(ALL_CFLAGS)
DEPMODE = $(CCDEPMODE)
else
COMPILER = $(CXX)
COMPILER_FLAGS = $(ALL_CXXFLAGS)
DEPMODE = $(CXXDEPMODE)
endif
libcpp_a_OBJS = charset.o directives.o directives-only.o errors.o \
expr.o files.o identifiers.o init.o lex.o line-map.o macro.o \
......@@ -189,7 +207,7 @@ update-po: $(CATALOGS:.gmo=.pox)
install-man update-po install-html
# Dependency rule.
COMPILE.base = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(ALL_CFLAGS) -c
COMPILE.base = $(COMPILER) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(COMPILER_FLAGS) -c
ifeq ($(DEPMODE),depmode=gcc3)
# Note that we put the dependencies into a .Tpo file, then move them
# into place if the compile succeeds. We need this because gcc does
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -11,8 +11,17 @@ AC_CANONICAL_SYSTEM
AC_PROG_MAKE_SET
AC_PROG_INSTALL
AC_PROG_CC
AC_PROG_CXX
AC_PROG_RANLIB
# See if we are building gcc with C++.
# Do this early so setting lang to C++ affects following tests
AC_ARG_ENABLE(build-with-cxx,
[ --enable-build-with-cxx build with C++ compiler instead of C compiler],
ENABLE_BUILD_WITH_CXX=$enableval,
ENABLE_BUILD_WITH_CXX=no)
AC_SUBST(ENABLE_BUILD_WITH_CXX)
MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
AC_CHECK_PROGS([ACLOCAL], [aclocal], [$MISSING aclocal])
AC_CHECK_PROGS([AUTOCONF], [autoconf], [$MISSING autoconf])
......@@ -21,9 +30,10 @@ AC_CHECK_PROGS([AUTOHEADER], [autoheader], [$MISSING autoheader])
# Figure out what compiler warnings we can enable.
# See config/warnings.m4 for details.
ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \
-Wmissing-prototypes -Wold-style-definition \
-Wmissing-format-attribute])
ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings \
-Wmissing-format-attribute], [warn])
ACX_PROG_CC_WARNING_OPTS([-Wstrict-prototypes -Wmissing-prototypes \
-Wold-style-definition -Wc++-compat], [c_warn])
ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([-Wno-long-long])
# Only enable with --enable-werror-always until existing warnings are
......@@ -32,13 +42,28 @@ ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual])
# Dependency checking.
ZW_CREATE_DEPDIR
if test "$ENABLE_BUILD_WITH_CXX" == "no"; then
ZW_PROG_COMPILER_DEPENDENCIES([CC])
else
ZW_PROG_COMPILER_DEPENDENCIES([CXX])
fi
# Checks for header files.
AC_HEADER_TIME
ACX_HEADER_STRING
AC_CHECK_HEADERS(locale.h fcntl.h limits.h stddef.h \
# AC_CHECK_HEADERS is repeated to work around apparent autoconf 2.59 bug. If
# AC_CHECK_HEADERS comes after the if clause, the last AC_LANG call gets used,
# no matter which branch is taken.
if test "$ENABLE_BUILD_WITH_CXX" == "no"; then
AC_LANG(C)
AC_CHECK_HEADERS(locale.h fcntl.h limits.h stddef.h \
stdlib.h strings.h string.h sys/file.h unistd.h)
else
AC_LANG(C++)
AC_CHECK_HEADERS(locale.h fcntl.h limits.h stddef.h \
stdlib.h strings.h string.h sys/file.h unistd.h)
fi
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
......
......@@ -918,7 +918,7 @@ do_line (cpp_reader *pfile)
{
cpp_string s = { 0, 0 };
if (cpp_interpret_string_notranslate (pfile, &token->val.str, 1,
&s, false))
&s, CPP_STRING))
new_file = (const char *)s.text;
check_eol (pfile, true);
}
......@@ -974,7 +974,7 @@ do_linemarker (cpp_reader *pfile)
{
cpp_string s = { 0, 0 };
if (cpp_interpret_string_notranslate (pfile, &token->val.str,
1, &s, false))
1, &s, CPP_STRING))
new_file = (const char *)s.text;
new_sysp = 0;
......
......@@ -381,8 +381,8 @@ find_file_in_dir (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch)
/* We copy the path name onto an obstack partly so that we don't
leak the memory, but mostly so that we don't fragment the
heap. */
copy = obstack_copy0 (&pfile->nonexistent_file_ob, path,
strlen (path));
copy = (char *) obstack_copy0 (&pfile->nonexistent_file_ob, path,
strlen (path));
free (path);
pp = htab_find_slot_with_hash (pfile->nonexistent_file_hash,
copy, hv, INSERT);
......@@ -1144,7 +1144,7 @@ file_hash_eq (const void *p, const void *q)
static int
nonexistent_file_hash_eq (const void *p, const void *q)
{
return strcmp (p, q) == 0;
return strcmp ((const char *) p, (const char *) q) == 0;
}
/* Initialize everything in this source file. */
......
......@@ -18,10 +18,6 @@ along with this program; see the file COPYING3. If not see
#include "cpplib.h"
#ifdef __cplusplus
extern "C" {
#endif
#if !defined (HAVE_UCHAR) && !defined (IN_GCC)
typedef unsigned char uchar;
#endif
......@@ -83,7 +79,3 @@ struct GTY(()) cpp_macro {
tokens. */
unsigned int extra_tokens : 1;
};
#ifdef __cplusplus
}
#endif
......@@ -28,10 +28,6 @@ along with this program; see the file COPYING3. If not see
#include "symtab.h"
#include "line-map.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct cpp_reader cpp_reader;
typedef struct cpp_buffer cpp_buffer;
typedef struct cpp_options cpp_options;
......@@ -933,8 +929,4 @@ extern void cpp_prepare_state (cpp_reader *, struct save_macro_data **);
extern int cpp_read_state (cpp_reader *, const char *, FILE *,
struct save_macro_data *);
#ifdef __cplusplus
}
#endif
#endif /* ! LIBCPP_CPPLIB_H */
......@@ -23,10 +23,6 @@ along with this program; see the file COPYING3. If not see
#ifndef LIBCPP_LINE_MAP_H
#define LIBCPP_LINE_MAP_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef GTY
#define GTY(x) /* nothing */
#endif
......@@ -191,8 +187,4 @@ extern const struct line_map *linemap_lookup
extern source_location
linemap_position_for_column (struct line_maps *set, unsigned int to_column);
#ifdef __cplusplus
}
#endif
#endif /* !LIBCPP_LINE_MAP_H */
......@@ -23,10 +23,6 @@ along with this program; see the file COPYING3. If not see
#ifndef LIBCPP_MKDEPS_H
#define LIBCPP_MKDEPS_H
#ifdef __cplusplus
extern "C" {
#endif
/* This is the data structure used by all the functions in mkdeps.c.
It's quite straightforward, but should be treated as opaque. */
......@@ -80,8 +76,4 @@ extern int deps_restore (struct deps *, FILE *, const char *);
automatic dependency schemes. */
extern void deps_phony_targets (const struct deps *, FILE *);
#ifdef __cplusplus
}
#endif
#endif /* ! LIBCPP_MKDEPS_H */
......@@ -21,10 +21,6 @@ along with this program; see the file COPYING3. If not see
#include "obstack.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifndef GTY
#define GTY(x) /* nothing */
#endif
......@@ -104,8 +100,4 @@ extern void ht_load (hash_table *ht, hashnode *entries,
/* Dump allocation statistics to stderr. */
extern void ht_dump_statistics (hash_table *);
#ifdef __cplusplus
}
#endif
#endif /* LIBCPP_SYMTAB_H */
......@@ -163,7 +163,7 @@ ht_lookup_with_hash (hash_table *table, const unsigned char *str,
if (table->alloc_subobject)
{
char *chars = table->alloc_subobject (len + 1);
char *chars = (char *) table->alloc_subobject (len + 1);
memcpy (chars, str, len);
chars[len] = '\0';
HT_STR (node) = (const unsigned char *) chars;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment