ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
./: * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes. * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO version. * c-decl.c (finish_decl): If -Wc++-compat, warn about uninitialized const. testsuite/: * gcc.dg/Wcxx-compat-17.c: New testcase. From-SVN: r148710
This commit is contained in:
parent
dc491a250a
commit
642324bb16
6 changed files with 75 additions and 3 deletions
|
@ -1,3 +1,12 @@
|
|||
2009-06-19 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
* ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
|
||||
* sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
|
||||
version.
|
||||
|
||||
* c-decl.c (finish_decl): If -Wc++-compat, warn about
|
||||
uninitialized const.
|
||||
|
||||
2009-06-19 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
* dse.c (struct store_info): Rename bitmap field to bmap. Change
|
||||
|
|
|
@ -4352,6 +4352,14 @@ finish_decl (tree decl, location_t init_loc, tree init,
|
|||
push_cleanup (decl, cleanup, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (warn_cxx_compat
|
||||
&& TREE_CODE (decl) == VAR_DECL
|
||||
&& TREE_READONLY (decl)
|
||||
&& !DECL_EXTERNAL (decl)
|
||||
&& DECL_INITIAL (decl) == NULL_TREE)
|
||||
warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wc___compat,
|
||||
"uninitialized const %qD is invalid in C++", decl);
|
||||
}
|
||||
|
||||
/* Given a parsed parameter declaration, decode it into a PARM_DECL. */
|
||||
|
|
|
@ -2165,7 +2165,7 @@ ggc_pch_write_object (struct ggc_pch_data *d ATTRIBUTE_UNUSED,
|
|||
size_t size, bool is_string ATTRIBUTE_UNUSED)
|
||||
{
|
||||
unsigned order;
|
||||
static const char emptyBytes[256];
|
||||
static const char emptyBytes[256] = { 0 };
|
||||
|
||||
if (size < NUM_SIZE_LOOKUP)
|
||||
order = size_lookup[size];
|
||||
|
|
34
gcc/sdbout.c
34
gcc/sdbout.c
|
@ -1,6 +1,6 @@
|
|||
/* Output sdb-format symbol table information from GNU compiler.
|
||||
Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
|
||||
2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
@ -1698,7 +1698,37 @@ sdbout_init (const char *input_file_name ATTRIBUTE_UNUSED)
|
|||
#else /* SDB_DEBUGGING_INFO */
|
||||
|
||||
/* This should never be used, but its address is needed for comparisons. */
|
||||
const struct gcc_debug_hooks sdb_debug_hooks;
|
||||
const struct gcc_debug_hooks sdb_debug_hooks =
|
||||
{
|
||||
0, /* init */
|
||||
0, /* finish */
|
||||
0, /* define */
|
||||
0, /* undef */
|
||||
0, /* start_source_file */
|
||||
0, /* end_source_file */
|
||||
0, /* begin_block */
|
||||
0, /* end_block */
|
||||
0, /* ignore_block */
|
||||
0, /* source_line */
|
||||
0, /* begin_prologue */
|
||||
0, /* end_prologue */
|
||||
0, /* end_epilogue */
|
||||
0, /* begin_function */
|
||||
0, /* end_function */
|
||||
0, /* function_decl */
|
||||
0, /* global_decl */
|
||||
0, /* type_decl */
|
||||
0, /* imported_module_or_decl */
|
||||
0, /* deferred_inline_function */
|
||||
0, /* outlining_inline_function */
|
||||
0, /* label */
|
||||
0, /* handle_pch */
|
||||
0, /* var_location */
|
||||
0, /* switch_text_section */
|
||||
0, /* set_name */
|
||||
0 /* start_end_main_source_file */
|
||||
};
|
||||
|
||||
|
||||
#endif /* SDB_DEBUGGING_INFO */
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2009-06-19 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
* gcc.dg/Wcxx-compat-17.c: New testcase.
|
||||
|
||||
2009-06-19 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
* gcc.dg/Wcxx-compat-15.c: New testcase.
|
||||
|
|
21
gcc/testsuite/gcc.dg/Wcxx-compat-17.c
Normal file
21
gcc/testsuite/gcc.dg/Wcxx-compat-17.c
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wc++-compat" } */
|
||||
const int v1; /* { dg-warning "invalid in C\[+\]\[+\]" } */
|
||||
const char * const v2; /* { dg-warning "invalid in C\[+\]\[+\]" } */
|
||||
struct s { int f1; int f2; };
|
||||
const struct s v3; /* { dg-warning "invalid in C\[+\]\[+\]" } */
|
||||
const int v4 = 1;
|
||||
const char * const v5 = 0;
|
||||
const struct s v6 = { 0, 0 };
|
||||
const struct s v7 = { 0 };
|
||||
void
|
||||
f()
|
||||
{
|
||||
const int v11; /* { dg-warning "invalid in C\[+\]\[+\]" } */
|
||||
const char * const v12; /* { dg-warning "invalid in C\[+\]\[+\]" } */
|
||||
const struct s v13; /* { dg-warning "invalid in C\[+\]\[+\]" } */
|
||||
const int v14 = 1;
|
||||
const char * const v15 = 0;
|
||||
const struct s v16 = { 0, 0 };
|
||||
const struct s v17 = { 0 };
|
||||
}
|
Loading…
Add table
Reference in a new issue