OSDN Git Service

PR c++/39413
[pf3gnuchains/gcc-fork.git] / gcc / dbgcnt.c
index 47ba28a..3fe3485 100644 (file)
@@ -1,5 +1,5 @@
 /* Debug counter for debugging support
-   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -82,13 +82,14 @@ dbg_cnt_set_limit_by_name (const char *name, int len, int value)
 {
   int i;
   for (i = debug_counter_number_of_counters - 1; i >= 0; i--)
-    if (!strncmp (map[i].name, name, len))
+    if (strncmp (map[i].name, name, len) == 0
+        && map[i].name[len] == '\0')
       break;
 
   if (i < 0)
     return false;
 
-  dbg_cnt_set_limit_by_index (i, value);
+  dbg_cnt_set_limit_by_index ((enum debug_counter) i, value);
   return true;
 }
 
@@ -100,7 +101,7 @@ dbg_cnt_set_limit_by_name (const char *name, int len, int value)
 static const char *
 dbg_cnt_process_single_pair (const char *arg)
 {
-   char *colon = strchr (arg, ':');
+   const char *colon = strchr (arg, ':');
    char *endptr = NULL;
    int value;
    
@@ -129,7 +130,7 @@ dbg_cnt_process_opt (const char *arg)
 
    if (next == NULL || *next != 0)
      {
-       char *buffer = alloca (arg - start + 2);
+       char *buffer = XALLOCAVEC (char, arg - start + 2);
        sprintf (buffer, "%*c", (int)(1 + (arg - start)), '^');
        error ("Can not find a valid counter:value pair:");
        error ("-fdbg-cnt=%s", start);