Index: gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c |
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..73934efc2e0f35fffed5436e7377c8b1483dde80 |
--- /dev/null |
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c |
@@ -0,0 +1,87 @@ |
+/* This testcase is part of GDB, the GNU debugger. |
+ |
+ Copyright 2012-2013 Free Software Foundation, Inc. |
+ |
+ This program is free software; you can redistribute it and/or modify |
+ it under the terms of the GNU General Public License as published by |
+ the Free Software Foundation; either version 3 of the License, or |
+ (at your option) any later version. |
+ |
+ This program is distributed in the hope that it will be useful, |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ GNU General Public License for more details. |
+ |
+ You should have received a copy of the GNU General Public License |
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
+ |
+volatile int v; |
+ |
+static void |
+marker (void) |
+{ |
+ v++; |
+} |
+ |
+/* *R* marks possibly invalid compiler output as the first path component is |
+ not absolute. Still DWARF-4 does not forbid such DWARF; GCC does not |
+ produce it. */ |
+ |
+#define FUNCBLOCK \ |
+FUNC (compdir_missing__ldir_missing__file_basename) /*R*/\ |
+FUNC (compdir_missing__ldir_missing__file_relative) /*R*/\ |
+FUNC (compdir_missing__ldir_missing__file_absolute) \ |
+FUNC (compdir_missing__ldir_relative_file_basename) /*R*/\ |
+FUNC (compdir_missing__ldir_relative_file_relative) /*R*/\ |
+FUNC (compdir_missing__ldir_relative_file_absolute) /*R*/\ |
+FUNC (compdir_missing__ldir_absolute_file_basename) \ |
+FUNC (compdir_missing__ldir_absolute_file_relative) \ |
+FUNC (compdir_missing__ldir_absolute_file_absolute_same) \ |
+FUNC (compdir_missing__ldir_absolute_file_absolute_different) \ |
+FUNC (compdir_relative_ldir_missing__file_basename) /*R*/\ |
+FUNC (compdir_relative_ldir_missing__file_relative) /*R*/\ |
+FUNC (compdir_relative_ldir_missing__file_absolute) /*R*/\ |
+FUNC (compdir_relative_ldir_relative_file_basename) /*R*/\ |
+FUNC (compdir_relative_ldir_relative_file_relative) /*R*/\ |
+FUNC (compdir_relative_ldir_relative_file_absolute) /*R*/\ |
+FUNC (compdir_relative_ldir_absolute_file_basename) /*R*/\ |
+FUNC (compdir_relative_ldir_absolute_file_relative) /*R*/\ |
+FUNC (compdir_relative_ldir_absolute_file_absolute_same) /*R*/\ |
+FUNC (compdir_relative_ldir_absolute_file_absolute_different) /*R*/\ |
+FUNC (compdir_absolute_ldir_missing__file_basename) \ |
+FUNC (compdir_absolute_ldir_missing__file_relative) \ |
+FUNC (compdir_absolute_ldir_missing__file_absolute_same) \ |
+FUNC (compdir_absolute_ldir_missing__file_absolute_different) \ |
+FUNC (compdir_absolute_ldir_relative_file_basename) \ |
+FUNC (compdir_absolute_ldir_relative_file_relative) \ |
+FUNC (compdir_absolute_ldir_relative_file_absolute_same) \ |
+FUNC (compdir_absolute_ldir_relative_file_absolute_different) \ |
+FUNC (compdir_absolute_ldir_absolute_file_basename_same) \ |
+FUNC (compdir_absolute_ldir_absolute_file_basename_different) \ |
+FUNC (compdir_absolute_ldir_absolute_file_relative_same) \ |
+FUNC (compdir_absolute_ldir_absolute_file_relative_different) \ |
+FUNC (compdir_absolute_ldir_absolute_file_absolute_same) \ |
+FUNC (compdir_absolute_ldir_absolute_file_absolute_different) |
+ |
+#define FUNC(name) \ |
+ asm (#name "_start: .globl " #name "_start\n"); \ |
+ static void \ |
+ name (void) \ |
+ { \ |
+ v++; \ |
+ } \ |
+ asm (#name "_end: .globl " #name "_end\n"); |
+FUNCBLOCK |
+#undef FUNC |
+ |
+int |
+main (void) |
+{ |
+ |
+#define FUNC(name) \ |
+ name (); |
+FUNCBLOCK |
+#undef FUNC |
+ |
+ return 0; |
+} |