mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			parser.c (set_and_check_decl_spec_loc): Use rich_location::add_range in error message about __thread and thread_local...
/cp 2018-07-02 Paolo Carlini <paolo.carlini@oracle.com> * parser.c (set_and_check_decl_spec_loc): Use rich_location::add_range in error message about __thread and thread_local at the same time. /testsuite 2018-07-02 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/diagnostic/thread-thread_local.C: New. From-SVN: r262321
This commit is contained in:
		
							parent
							
								
									ee896276f6
								
							
						
					
					
						commit
						a5eae716f6
					
				|  | @ -1,3 +1,8 @@ | |||
| 2018-07-02  Paolo Carlini  <paolo.carlini@oracle.com> | ||||
| 
 | ||||
| 	* parser.c (set_and_check_decl_spec_loc): Use rich_location::add_range | ||||
| 	in error message about __thread and thread_local at the same time. | ||||
| 
 | ||||
| 2018-06-29  Marek Polacek  <polacek@redhat.com> | ||||
| 
 | ||||
| 	PR c++/86184 | ||||
|  |  | |||
|  | @ -28377,12 +28377,15 @@ set_and_check_decl_spec_loc (cp_decl_specifier_seq *decl_specs, | |||
|       else if (ds == ds_thread) | ||||
| 	{ | ||||
| 	  bool gnu = token_is__thread (token); | ||||
| 	  gcc_rich_location richloc (location); | ||||
| 	  if (gnu != decl_specs->gnu_thread_keyword_p) | ||||
| 	    error_at (location, | ||||
| 		      "both %<__thread%> and %<thread_local%> specified"); | ||||
| 	    { | ||||
| 	      richloc.add_range (decl_specs->locations[ds_thread], false); | ||||
| 	      error_at (&richloc, | ||||
| 			"both %<__thread%> and %<thread_local%> specified"); | ||||
| 	    } | ||||
| 	  else | ||||
| 	    { | ||||
| 	      gcc_rich_location richloc (location); | ||||
| 	      richloc.add_fixit_remove (); | ||||
| 	      error_at (&richloc, "duplicate %qD", token->u.value); | ||||
| 	    } | ||||
|  |  | |||
|  | @ -1,3 +1,7 @@ | |||
| 2018-07-02  Paolo Carlini  <paolo.carlini@oracle.com> | ||||
| 
 | ||||
| 	* g++.dg/diagnostic/thread-thread_local.C: New. | ||||
| 
 | ||||
| 2018-07-02  Martin Liska  <mliska@suse.cz> | ||||
| 
 | ||||
|         PR testsuite/86366 | ||||
|  |  | |||
|  | @ -0,0 +1,13 @@ | |||
| // { dg-options "-fdiagnostics-show-caret" }
 | ||||
| // { dg-do compile { target c++11 } }
 | ||||
| 
 | ||||
| thread_local __thread int a;  // { dg-error "14:both .__thread. and .thread_local. specified" }
 | ||||
| /* { dg-begin-multiline-output "" }
 | ||||
|  thread_local __thread int a; | ||||
|  ~~~~~~~~~~~~ ^~~~~~~~ | ||||
|    { dg-end-multiline-output "" } */ | ||||
| __thread thread_local int b;  // { dg-error "10:both .__thread. and .thread_local. specified" }
 | ||||
| /* { dg-begin-multiline-output "" }
 | ||||
|  __thread thread_local int b; | ||||
|  ~~~~~~~~ ^~~~~~~~~~~~ | ||||
|    { dg-end-multiline-output "" } */ | ||||
		Loading…
	
		Reference in New Issue
	
	 Paolo Carlini
						Paolo Carlini