re PR c++/55801 (ICE with thread_local after ill-formed declaration)

/cp
2013-01-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55801
	* decl2.c (var_needs_tls_wrapper): Return false when error_operand_p
	of the argument is true.

/testsuite
2013-01-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55801
	* g++.dg/tls/thread_local-ice.C: New.

From-SVN: r195050
This commit is contained in:
Paolo Carlini 2013-01-09 14:43:50 +00:00
parent f0d5414883
commit fdbff37f39
4 changed files with 22 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2013-01-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/55801
* decl2.c (var_needs_tls_wrapper): Return false when error_operand_p
of the argument is true.
2013-01-08 Joel Brobecker <brobecker@adacore.com>
* parser.c (cp_parser_initializer_list): Move declaration

View File

@ -1,7 +1,7 @@
/* Process declarations and variables for C++ compiler.
Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010,
2011, 2012 Free Software Foundation, Inc.
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007-2013
Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC.
@ -2807,7 +2807,8 @@ var_defined_without_dynamic_init (tree var)
static bool
var_needs_tls_wrapper (tree var)
{
return (DECL_THREAD_LOCAL_P (var)
return (!error_operand_p (var)
&& DECL_THREAD_LOCAL_P (var)
&& !DECL_GNU_TLS_P (var)
&& !DECL_FUNCTION_SCOPE_P (var)
&& !var_defined_without_dynamic_init (var));

View File

@ -1,3 +1,8 @@
2013-01-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/55801
* g++.dg/tls/thread_local-ice.C: New.
2013-01-09 Andreas Schwab <schwab@suse.de>
* gcc.dg/guality/pr54693.c: Null-terminate arr.
@ -20,7 +25,7 @@
2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
* gcc.target/aarch64/vect-mull-compile.c: Explicitly scan for
* gcc.target/aarch64/vect-mull-compile.c: Explicitly scan for
instructions generated instead of number of occurances.
2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>

View File

@ -0,0 +1,6 @@
// PR c++/55801
// { dg-options "-std=c++11" }
// { dg-require-effective-target tls }
class C;
thread_local C O, O2 = O; // { dg-error "incomplete" }