Commit 53290e07 by Jakub Jelinek Committed by Jakub Jelinek

re PR c++/69145 (Bogus 'warning: #pragma implementation for ‘...’ appears after file is included')

	PR c++/69145
	* files.c (cpp_included_before): If IS_ADHOC_LOC (location), lookup
	real location from the line_table.

	* g++.dg/ext/pr69145-1.C: New test.
	* g++.dg/ext/pr69145-2-very-long-filename.cc: New file.
	* g++.dg/ext/pr69145-2.h: New file.

From-SVN: r232150
parent 52ad5601
2016-01-08 Jakub Jelinek <jakub@redhat.com>
PR c++/69145
* g++.dg/ext/pr69145-1.C: New test.
* g++.dg/ext/pr69145-2-very-long-filename.cc: New file.
* g++.dg/ext/pr69145-2.h: New file.
2016-01-07 Martin Sebor <msebor@redhat.com>
PR c/68966
......
// PR c++/69145
// { dg-do compile }
#pragma implementation "pr69145-2-very-long-filename.cc" // { dg-bogus "appears after file is included" }
#include "pr69145-2-very-long-filename.cc"
// PR c++/69145
// { dg-do compile } */
#include "pr69145-2.h"
#ifndef PR69145_2_H
# define PR69145_2_H
#endif
2016-01-08 Jakub Jelinek <jakub@redhat.com>
PR c++/69145
* files.c (cpp_included_before): If IS_ADHOC_LOC (location), lookup
real location from the line_table.
2016-01-04 Jakub Jelinek <jakub@redhat.com>
Update copyright years.
......
......@@ -1224,11 +1224,13 @@ bool
cpp_included_before (cpp_reader *pfile, const char *fname,
source_location location)
{
struct cpp_file_hash_entry *entry;
entry = (struct cpp_file_hash_entry *)
struct cpp_file_hash_entry *entry
= (struct cpp_file_hash_entry *)
htab_find_with_hash (pfile->file_hash, fname, htab_hash_string (fname));
if (IS_ADHOC_LOC (location))
location = get_location_from_adhoc_loc (pfile->line_table, location);
while (entry && (entry->start_dir == NULL || entry->u.file->err_no
|| entry->location > location))
entry = entry->next;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment