[Lldb-commits] [lldb] r169417 - in /lldb/trunk: include/lldb/Interpreter/Options.h source/Interpreter/Args.cpp source/Interpreter/Options.cpp

Malea, Daniel daniel.malea at intel.com
Wed Dec 5 16:12:10 PST 2012


Thanks; fix committed in r169454

On 2012-12-05, at 4:03 PM, Du Toit, Stefanus wrote:

> Also, not sure this even belongs in an anonymous namespace since it's in a
> header. I'd put it in lldb_private.
> 
> --
> Stefanus Du Toit <stefanus.du.toit at intel.com>
> Intel Waterloo
> Phone: 519-591-1738
> 
> 
> 
> 
> 
> 
> On 2012-12-05 12:24 PM, "Daniel Malea" <daniel.malea at intel.com> wrote:
> 
>> Author: dmalea
>> Date: Wed Dec  5 14:24:57 2012
>> New Revision: 169417
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=169417&view=rev
>> Log:
>> Define isprint8() wrapper around isprint() in order to avoid crashes on
>> Linux
>> 
>> 
>> Modified:
>>   lldb/trunk/include/lldb/Interpreter/Options.h
>>   lldb/trunk/source/Interpreter/Args.cpp
>>   lldb/trunk/source/Interpreter/Options.cpp
>> 
>> Modified: lldb/trunk/include/lldb/Interpreter/Options.h
>> URL: 
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/Op
>> tions.h?rev=169417&r1=169416&r2=169417&view=diff
>> ==========================================================================
>> ====
>> --- lldb/trunk/include/lldb/Interpreter/Options.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/Options.h Wed Dec  5 14:24:57 2012
>> @@ -23,6 +23,18 @@
>> #include "lldb/lldb-defines.h"
>> #include "lldb/Interpreter/Args.h"
>> 
>> +namespace {
>> +
>> +  static inline bool
>> +  isprint8 (int ch)
>> +  {
>> +      if (ch & 0xffffff00u)
>> +          return false;
>> +      return isprint(ch);
>> +  }
>> +
>> +}
>> +
>> namespace lldb_private {
>> 
>> //----------------------------------------------------------------------
>> 
>> Modified: lldb/trunk/source/Interpreter/Args.cpp
>> URL: 
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/Args.cpp
>> ?rev=169417&r1=169416&r2=169417&view=diff
>> ==========================================================================
>> ====
>> --- lldb/trunk/source/Interpreter/Args.cpp (original)
>> +++ lldb/trunk/source/Interpreter/Args.cpp Wed Dec  5 14:24:57 2012
>> @@ -627,7 +627,7 @@
>>    {
>>        if (long_options[i].flag == NULL)
>>        {
>> -            if (isprint(long_options[i].val))
>> +            if (isprint8(long_options[i].val))
>>            {
>>                sstr << (char)long_options[i].val;
>>                switch (long_options[i].has_arg)
>> @@ -1628,7 +1628,7 @@
>>    {
>>        for (const char *p = src; *p != '\0'; ++p)
>>        {
>> -            if (isprint(*p))
>> +            if (isprint8(*p))
>>                dst.append(1, *p);
>>            else
>>            {
>> 
>> Modified: lldb/trunk/source/Interpreter/Options.cpp
>> URL: 
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/Options.
>> cpp?rev=169417&r1=169416&r2=169417&view=diff
>> ==========================================================================
>> ====
>> --- lldb/trunk/source/Interpreter/Options.cpp (original)
>> +++ lldb/trunk/source/Interpreter/Options.cpp Wed Dec  5 14:24:57 2012
>> @@ -291,7 +291,7 @@
>>                m_getopt_table[i].val = 0;
>>                std::map<int, uint32_t>::const_iterator pos =
>> option_seen.find(short_opt);
>>                StreamString strm;
>> -                if (isprint(short_opt))
>> +                if (isprint8(short_opt))
>>                    Host::SystemLog (Host::eSystemLogError, "option[%u]
>> --%s has a short option -%c that conflicts with option[%u] --%s, short
>> option won't be used for --%s\n",
>>                                i,
>>                                opt_defs[i].long_option,
>> @@ -427,7 +427,7 @@
>>             bool show_optional,
>>             Stream &strm)
>> {
>> -    const bool has_short_option = isprint(opt_def.short_option) != 0;
>> +    const bool has_short_option = isprint8(opt_def.short_option) != 0;
>> 
>>    if (display_type == eDisplayShortOption && !has_short_option)
>>        return false;
>> @@ -525,7 +525,7 @@
>>        bool first;
>>        for (i = 0, first = true; i < num_options; ++i)
>>        {
>> -            if (opt_defs[i].usage_mask & opt_set_mask &&
>> isprint(opt_defs[i].short_option))
>> +            if (opt_defs[i].usage_mask & opt_set_mask &&
>> isprint8(opt_defs[i].short_option))
>>            {
>>                // Add current option to the end of out_stream.
>> 
>> @@ -556,7 +556,7 @@
>> 
>>        for (i = 0, options.clear(); i < num_options; ++i)
>>        {
>> -            if (opt_defs[i].usage_mask & opt_set_mask &&
>> isprint(opt_defs[i].short_option))
>> +            if (opt_defs[i].usage_mask & opt_set_mask &&
>> isprint8(opt_defs[i].short_option))
>>            {
>>                // Add current option to the end of out_stream.
>> 
>> @@ -590,7 +590,7 @@
>> 
>>        for (i = 0; i < num_options; ++i)
>>        {
>> -            if (opt_defs[i].usage_mask & opt_set_mask &&
>> isprint(opt_defs[i].short_option))
>> +            if (opt_defs[i].usage_mask & opt_set_mask &&
>> isprint8(opt_defs[i].short_option))
>>            {
>>                if (opt_defs[i].required && opt_defs[i].option_has_arg
>> != no_argument)
>>                    PrintOption (opt_defs[i], eDisplayBestOption, " ",
>> NULL, true, strm);
>> @@ -668,7 +668,7 @@
>>        arg_name_str.Printf ("<%s>", CommandObject::GetArgumentName
>> (arg_type));
>> 
>>        strm.Indent ();
>> -        if (opt_defs[i].short_option &&
>> isprint(opt_defs[i].short_option))
>> +        if (opt_defs[i].short_option &&
>> isprint8(opt_defs[i].short_option))
>>        {
>>            PrintOption (opt_defs[i], eDisplayShortOption, NULL, NULL,
>> false, strm);
>>            PrintOption (opt_defs[i], eDisplayLongOption, " ( ", " )",
>> false, strm);
>> 
>> 
>> _______________________________________________
>> lldb-commits mailing list
>> lldb-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
> 





More information about the lldb-commits mailing list