mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-01 12:06:16 +08:00
typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up definition of 'casting away const' in reinterpret_cast<>.
* typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up definition of 'casting away const' in reinterpret_cast<>. * cvt.c: Add include for decl.h, remove extern for static_aggregates which is now provided by decl.h. * Makefile.in (cvt.o): Add dependency for decl.h and missing dependencies for convert.h and flags.h. * decl2.c (do_dtors): Set current location to that of the decl, for sensible diagnostics and debugging. (check_classfn): Issue `incomplete type' error, if class is not defined. * cp-tree.h: Add prototype for bound_pmf_p. From-SVN: r24748
This commit is contained in:
parent
8c7707b030
commit
ddaed37e04
@ -1,3 +1,27 @@
|
||||
1999-01-18 Chip Salzenberg <chip@perlsupport.com>
|
||||
|
||||
* typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up
|
||||
definition of 'casting away const' in reinterpret_cast<>.
|
||||
|
||||
1999-01-18 Graham <grahams@rcp.co.uk>
|
||||
|
||||
* cvt.c: Add include for decl.h, remove extern for
|
||||
static_aggregates which is now provided by decl.h.
|
||||
|
||||
* Makefile.in (cvt.o): Add dependency for decl.h and missing
|
||||
dependencies for convert.h and flags.h.
|
||||
|
||||
1999-01-18 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* decl2.c (do_dtors): Set current location to that of the
|
||||
decl, for sensible diagnostics and debugging.
|
||||
(check_classfn): Issue `incomplete type' error, if
|
||||
class is not defined.
|
||||
|
||||
1999-01-16 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* cp-tree.h: Add prototype for bound_pmf_p.
|
||||
|
||||
1999-01-16 Jason Merrill <jason@yorick.cygnus.com>
|
||||
Manfred Hollstein <manfred@s-direktnet.de>
|
||||
|
||||
|
@ -269,8 +269,8 @@ init.o : init.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
|
||||
$(EXPR_H) $(srcdir)/../system.h $(srcdir)/../toplev.h
|
||||
method.o : method.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../system.h \
|
||||
$(srcdir)/../toplev.h
|
||||
cvt.o : cvt.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../system.h \
|
||||
$(srcdir)/../toplev.h
|
||||
cvt.o : cvt.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../system.h decl.h \
|
||||
$(srcdir)/../flags.h $(srcdir)/../toplev.h $(srcdir)/../convert.h
|
||||
search.o : search.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../stack.h \
|
||||
$(srcdir)/../flags.h $(srcdir)/../system.h $(srcdir)/../toplev.h
|
||||
tree.o : tree.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h \
|
||||
|
@ -3259,6 +3259,7 @@ extern int count_functions PROTO((tree));
|
||||
extern int is_overloaded_fn PROTO((tree));
|
||||
extern tree get_first_fn PROTO((tree));
|
||||
extern tree binding_init PROTO((struct tree_binding*));
|
||||
extern int bound_pmf_p PROTO((tree));
|
||||
extern tree ovl_cons PROTO((tree, tree));
|
||||
extern tree scratch_ovl_cons PROTO((tree, tree));
|
||||
extern int ovl_member PROTO((tree, tree));
|
||||
|
@ -32,8 +32,7 @@ Boston, MA 02111-1307, USA. */
|
||||
#include "cp-tree.h"
|
||||
#include "convert.h"
|
||||
#include "toplev.h"
|
||||
|
||||
extern tree static_aggregates;
|
||||
#include "decl.h"
|
||||
|
||||
static tree cp_convert_to_pointer PROTO((tree, tree));
|
||||
static tree convert_to_pointer_force PROTO((tree, tree));
|
||||
|
@ -1455,8 +1455,11 @@ check_classfn (ctype, function)
|
||||
else
|
||||
{
|
||||
methods = 0;
|
||||
cp_error ("no `%#D' member function declared in class `%T'",
|
||||
function, ctype);
|
||||
if (TYPE_SIZE (ctype) == 0)
|
||||
incomplete_type_error (function, ctype);
|
||||
else
|
||||
cp_error ("no `%#D' member function declared in class `%T'",
|
||||
function, ctype);
|
||||
}
|
||||
|
||||
/* If we did not find the method in the class, add it to avoid
|
||||
@ -3094,6 +3097,12 @@ do_dtors (start)
|
||||
if (! current_function_decl)
|
||||
start_objects ('D', initp);
|
||||
|
||||
/* Set these global variables so that GDB at least puts
|
||||
us near the declaration which required the initialization. */
|
||||
input_filename = DECL_SOURCE_FILE (decl);
|
||||
lineno = DECL_SOURCE_LINE (decl);
|
||||
emit_note (input_filename, lineno);
|
||||
|
||||
/* Because of:
|
||||
|
||||
[class.access.spec]
|
||||
|
@ -7439,12 +7439,10 @@ comp_ptr_ttypes_reinterpret (to, from)
|
||||
if (TREE_CODE (to) == OFFSET_TYPE)
|
||||
to = TREE_TYPE (to);
|
||||
|
||||
if (TREE_CODE (to) != TREE_CODE (from))
|
||||
return 1;
|
||||
|
||||
/* Const and volatile mean something different for function types,
|
||||
so the usual checks are not appropriate. */
|
||||
if (TREE_CODE (to) != FUNCTION_TYPE && TREE_CODE (to) != METHOD_TYPE)
|
||||
if (TREE_CODE (from) != FUNCTION_TYPE && TREE_CODE (from) != METHOD_TYPE
|
||||
&& TREE_CODE (to) != FUNCTION_TYPE && TREE_CODE (to) != METHOD_TYPE)
|
||||
{
|
||||
if (!at_least_as_qualified_p (to, from))
|
||||
return 0;
|
||||
@ -7455,7 +7453,8 @@ comp_ptr_ttypes_reinterpret (to, from)
|
||||
constp &= TYPE_READONLY (to);
|
||||
}
|
||||
|
||||
if (TREE_CODE (to) != POINTER_TYPE)
|
||||
if (TREE_CODE (from) != POINTER_TYPE
|
||||
|| TREE_CODE (to) != POINTER_TYPE)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user