c-pch.c (struct c_pch_validity): Add pch_init field.
* c-pch.c (struct c_pch_validity): Add pch_init field. (pch_init): Set it. (c_common_valid_pch): Check it. (get_ident): Bump the PCH version number. From-SVN: r72804
This commit is contained in:
parent
57d01e696f
commit
926a822f2b
@ -1,3 +1,10 @@
|
|||||||
|
2003-10-22 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
|
* c-pch.c (struct c_pch_validity): Add pch_init field.
|
||||||
|
(pch_init): Set it.
|
||||||
|
(c_common_valid_pch): Check it.
|
||||||
|
(get_ident): Bump the PCH version number.
|
||||||
|
|
||||||
2003-10-22 David Taylor <dtaylor@emc.com>
|
2003-10-22 David Taylor <dtaylor@emc.com>
|
||||||
|
|
||||||
PR debug/12500
|
PR debug/12500
|
||||||
|
14
gcc/c-pch.c
14
gcc/c-pch.c
@ -48,6 +48,7 @@ struct c_pch_validity
|
|||||||
unsigned char target_machine_length;
|
unsigned char target_machine_length;
|
||||||
unsigned char version_length;
|
unsigned char version_length;
|
||||||
unsigned char debug_info_type;
|
unsigned char debug_info_type;
|
||||||
|
void (*pch_init) (void);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct c_pch_header
|
struct c_pch_header
|
||||||
@ -113,6 +114,7 @@ pch_init (void)
|
|||||||
v.version_length = strlen (version_string);
|
v.version_length = strlen (version_string);
|
||||||
|
|
||||||
v.debug_info_type = write_symbols;
|
v.debug_info_type = write_symbols;
|
||||||
|
v.pch_init = &pch_init;
|
||||||
if (fwrite (get_ident(), IDENT_LENGTH, 1, f) != 1
|
if (fwrite (get_ident(), IDENT_LENGTH, 1, f) != 1
|
||||||
|| fwrite (&v, sizeof (v), 1, f) != 1
|
|| fwrite (&v, sizeof (v), 1, f) != 1
|
||||||
|| fwrite (host_machine, v.host_machine_length, 1, f) != 1
|
|| fwrite (host_machine, v.host_machine_length, 1, f) != 1
|
||||||
@ -285,6 +287,18 @@ c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
|
|||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If the text segment was not loaded at the same address as it was
|
||||||
|
when the PCH file was created, function pointers loaded from the
|
||||||
|
PCH will not be valid. We could in theory remap all the function
|
||||||
|
pointers, but no support for that exists at present. */
|
||||||
|
if (v.pch_init != &pch_init)
|
||||||
|
{
|
||||||
|
if (cpp_get_options (pfile)->warn_invalid_pch)
|
||||||
|
cpp_error (pfile, DL_WARNING,
|
||||||
|
"%s: had text segment at different address", name);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
/* Check the preprocessor macros are the same as when the PCH was
|
/* Check the preprocessor macros are the same as when the PCH was
|
||||||
generated. */
|
generated. */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user