[cfe-dev] clang unable to build example C file

Török Edvin edwintorok at gmail.com
Thu Oct 11 13:20:43 PDT 2007


On 10/11/07, Chris Lattner <clattner at apple.com> wrote:
>
> Ok, very strange.  As Anton mentioned, please try with a debug
> build.  This should give us line numbers which will make it easier to
> identify the problem.

Hi,

Thank for the quick patch yesterday.

See the results of running valgrind on a debug build of llvm r42868 at
the end of this mail.

==25125== Conditional jump or move depends on uninitialised value(s)
==25125==    at 0x687876: clang::IdentifierInfo::getPPKeywordID()
const (IdentifierTable.cpp:160)

I added a printf("%lu\n",Len); before  "if (Len < 2) return
tok::pp_not_keyword;"

$ clang t.c 2>/dev/null| sort |uniq -c
     85 0

I get all zeros, which is not what I expected.
Where is Len set? I could try to add some printfs there...


My test/site.exp has this:
set ocamlc "/usr/bin/ocamlc -cc g++ -I /home/edwin/llvm-svn/llvm/Debug/lib/ocaml
"
## All variables above are generated by configure. Do Not Edit #



$ valgrind clang t.c

==25125== Memcheck, a memory error detector.
==25125== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==25125== Using LibVEX rev 1732, a library for dynamic binary translation.
==25125== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==25125== Using valgrind-3.2.3-Debian, a dynamic binary
instrumentation framework.
==25125== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==25125== For more details, rerun with: -v
==25125==
==25125== Conditional jump or move depends on uninitialised value(s)
==25125==    at 0x687876: clang::IdentifierInfo::getPPKeywordID()
const (IdentifierTable.cpp:160)
==25125==    by 0x67E0F4:
clang::Preprocessor::HandleDirective(clang::Token&)
(Preprocessor.cpp:1624)
==25125==    by 0x66D952:
clang::Lexer::LexTokenInternal(clang::Token&) (Lexer.cpp:1528)
==25125==    by 0x5BAD65: clang::Lexer::Lex(clang::Token&) (Lexer.h:131)
==25125==    by 0x5BAD9B: clang::Preprocessor::Lex(clang::Token&)
(Preprocessor.h:245)
==25125==    by 0x653DD3: clang::Parser::ConsumeToken() (Parser.h:118)
==25125==    by 0x65272B: clang::Parser::Initialize() (Parser.cpp:226)
==25125==    by 0x600F98: (anonymous
namespace)::ASTStreamer::ASTStreamer(clang::Preprocessor&,
clang::ASTContext&, unsigned) (ASTStreamer.cpp:34)
==25125==    by 0x6011C9: clang::ParseAST(clang::Preprocessor&,
unsigned, clang::ASTConsumer&, bool) (ASTStreamer.cpp:103)
==25125==    by 0x5C879D: ProcessInputFile(clang::Preprocessor&,
unsigned, std::string const&, clang::SourceManager&,
clang::TextDiagnostics&, clang::HeaderSearch&, clang::LangOptions
const&) (clang.cpp:812)
==25125==    by 0x5CA190: main (clang.cpp:908)
<predefines>:1:2: error: invalid preprocessing directive
#define __STDC__ 1
 ^
<predefines>:2:2: error: invalid preprocessing directive
#define __STDC_VERSION__ 199901L
 ^
<predefines>:3:2: error: invalid preprocessing directive
#define __STDC_HOSTED__ 1
 ^
<predefines>:5:2: error: invalid preprocessing directive
#define __APPLE__ 1
 ^
<predefines>:6:2: error: invalid preprocessing directive
#define __MACH__ 1
 ^
<predefines>:7:2: error: invalid preprocessing directive
#define __weak
 ^
<predefines>:8:2: error: invalid preprocessing directive
#define __strong
 ^
<predefines>:9:2: error: invalid preprocessing directive
#define __CONSTANT_CFSTRINGS__ 1
 ^
<predefines>:10:2: error: invalid preprocessing directive
#define __i386__ 1
 ^
<predefines>:11:2: error: invalid preprocessing directive
#define __i386 1
 ^
<predefines>:12:2: error: invalid preprocessing directive
#define i386 1
 ^
<predefines>:13:2: error: invalid preprocessing directive
#define __LITTLE_ENDIAN__ 1
 ^
<predefines>:14:2: error: invalid preprocessing directive
#define __INTMAX_MAX__ 9223372036854775807LL
 ^
<predefines>:15:2: error: invalid preprocessing directive
#define __INTMAX_TYPE__ long long int
 ^
<predefines>:16:2: error: invalid preprocessing directive
#define __LONG_MAX__ 2147483647L
 ^
<predefines>:17:2: error: invalid preprocessing directive
#define __PTRDIFF_TYPE__ int
 ^
<predefines>:18:2: error: invalid preprocessing directive
#define __UINTMAX_TYPE__ long long unsigned int
 ^
<predefines>:19:2: error: invalid preprocessing directive
#define __CHAR_BIT__ 8
 ^
<predefines>:20:2: error: invalid preprocessing directive
#define __INT_MAX__ 2147483647
 ^
<predefines>:21:2: error: invalid preprocessing directive
#define __LONG_LONG_MAX__ 9223372036854775807LL
 ^
<predefines>:22:2: error: invalid preprocessing directive
#define __SCHAR_MAX__ 127
 ^
<predefines>:23:2: error: invalid preprocessing directive
#define __SHRT_MAX__ 32767
 ^
<predefines>:24:2: error: invalid preprocessing directive
#define __SIZE_TYPE__ long unsigned int
 ^
<predefines>:25:2: error: invalid preprocessing directive
#define __nocona 1
 ^
<predefines>:26:2: error: invalid preprocessing directive
#define __nocona__ 1
 ^
<predefines>:27:2: error: invalid preprocessing directive
#define __tune_nocona__ 1
 ^
<predefines>:28:2: error: invalid preprocessing directive
#define __SSE2_MATH__ 1
 ^
<predefines>:29:2: error: invalid preprocessing directive
#define __SSE2__ 1
 ^
<predefines>:30:2: error: invalid preprocessing directive
#define __SSE_MATH__ 1
 ^
<predefines>:31:2: error: invalid preprocessing directive
#define __SSE__ 1
 ^
<predefines>:32:2: error: invalid preprocessing directive
#define __MMX__ 1
 ^
<predefines>:33:2: error: invalid preprocessing directive
#define __REGISTER_PREFIX__
 ^
<predefines>:34:2: error: invalid preprocessing directive
#define __WCHAR_MAX__ 2147483647
 ^
<predefines>:35:2: error: invalid preprocessing directive
#define __WCHAR_TYPE__ int
 ^
<predefines>:36:2: error: invalid preprocessing directive
#define __WINT_TYPE__ int
 ^
<predefines>:37:2: error: invalid preprocessing directive
#define __FLT_DENORM_MIN__ 1.40129846e-45F
 ^
<predefines>:38:2: error: invalid preprocessing directive
#define __FLT_DIG__ 6
 ^
<predefines>:39:2: error: invalid preprocessing directive
#define __FLT_EPSILON__ 1.19209290e-7F
 ^
<predefines>:40:2: error: invalid preprocessing directive
#define __FLT_EVAL_METHOD__ 0
 ^
<predefines>:41:2: error: invalid preprocessing directive
#define __FLT_HAS_INFINITY__ 1
 ^
<predefines>:42:2: error: invalid preprocessing directive
#define __FLT_HAS_QUIET_NAN__ 1
 ^
<predefines>:43:2: error: invalid preprocessing directive
#define __FLT_MANT_DIG__ 24
 ^
<predefines>:44:2: error: invalid preprocessing directive
#define __FLT_MAX_10_EXP__ 38
 ^
<predefines>:45:2: error: invalid preprocessing directive
#define __FLT_MAX_EXP__ 128
 ^
<predefines>:46:2: error: invalid preprocessing directive
#define __FLT_MAX__ 3.40282347e+38F
 ^
<predefines>:47:2: error: invalid preprocessing directive
#define __FLT_MIN_10_EXP__ (-37)
 ^
<predefines>:48:2: error: invalid preprocessing directive
#define __FLT_MIN_EXP__ (-125)
 ^
<predefines>:49:2: error: invalid preprocessing directive
#define __FLT_MIN__ 1.17549435e-38F
 ^
<predefines>:50:2: error: invalid preprocessing directive
#define __FLT_RADIX__ 2
 ^
<predefines>:51:2: error: invalid preprocessing directive
#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
 ^
<predefines>:52:2: error: invalid preprocessing directive
#define __DBL_DIG__ 15
 ^
<predefines>:53:2: error: invalid preprocessing directive
#define __DBL_EPSILON__ 2.2204460492503131e-16
 ^
<predefines>:54:2: error: invalid preprocessing directive
#define __DBL_HAS_INFINITY__ 1
 ^
<predefines>:55:2: error: invalid preprocessing directive
#define __DBL_HAS_QUIET_NAN__ 1
 ^
<predefines>:56:2: error: invalid preprocessing directive
#define __DBL_MANT_DIG__ 53
 ^
<predefines>:57:2: error: invalid preprocessing directive
#define __DBL_MAX_10_EXP__ 308
 ^
<predefines>:58:2: error: invalid preprocessing directive
#define __DBL_MAX_EXP__ 1024
 ^
<predefines>:59:2: error: invalid preprocessing directive
#define __DBL_MAX__ 1.7976931348623157e+308
 ^
<predefines>:60:2: error: invalid preprocessing directive
#define __DBL_MIN_10_EXP__ (-307)
 ^
<predefines>:61:2: error: invalid preprocessing directive
#define __DBL_MIN_EXP__ (-1021)
 ^
<predefines>:62:2: error: invalid preprocessing directive
#define __DBL_MIN__ 2.2250738585072014e-308
 ^
<predefines>:63:2: error: invalid preprocessing directive
#define __DECIMAL_DIG__ 21
 ^
<predefines>:64:2: error: invalid preprocessing directive
#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
 ^
<predefines>:65:2: error: invalid preprocessing directive
#define __LDBL_DIG__ 18
 ^
<predefines>:66:2: error: invalid preprocessing directive
#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
 ^
<predefines>:67:2: error: invalid preprocessing directive
#define __LDBL_HAS_INFINITY__ 1
 ^
<predefines>:68:2: error: invalid preprocessing directive
#define __LDBL_HAS_QUIET_NAN__ 1
 ^
<predefines>:69:2: error: invalid preprocessing directive
#define __LDBL_MANT_DIG__ 64
 ^
<predefines>:70:2: error: invalid preprocessing directive
#define __LDBL_MAX_10_EXP__ 4932
 ^
<predefines>:71:2: error: invalid preprocessing directive
#define __LDBL_MAX_EXP__ 16384
 ^
<predefines>:72:2: error: invalid preprocessing directive
#define __LDBL_MAX__ 1.18973149535723176502e+4932L
 ^
<predefines>:73:2: error: invalid preprocessing directive
#define __LDBL_MIN_10_EXP__ (-4931)
 ^
<predefines>:74:2: error: invalid preprocessing directive
#define __LDBL_MIN_EXP__ (-16381)
 ^
<predefines>:75:2: error: invalid preprocessing directive
#define __LDBL_MIN__ 3.36210314311209350626e-4932L
 ^
<predefines>:76:2: error: invalid preprocessing directive
#define __APPLE_CC__ 5250
 ^
<predefines>:77:2: error: invalid preprocessing directive
#define __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ 1030
 ^
<predefines>:78:2: error: invalid preprocessing directive
#define __GNUC_MINOR__ 0
 ^
<predefines>:79:2: error: invalid preprocessing directive
#define __GNUC_PATCHLEVEL__ 1
 ^
<predefines>:80:2: error: invalid preprocessing directive
#define __GNUC__ 4
 ^
<predefines>:81:2: error: invalid preprocessing directive
#define __GXX_ABI_VERSION 1002
 ^
<predefines>:82:2: error: invalid preprocessing directive
#define __VERSION__ "4.0.1 (Apple Computer, Inc. build 5250)"
 ^
<predefines>:83:2: error: invalid preprocessing directive
#define __DYNAMIC__ 1
 ^
<predefines>:84:2: error: invalid preprocessing directive
#define __FINITE_MATH_ONLY__ 0
 ^
<predefines>:85:2: error: invalid preprocessing directive
#define __NO_INLINE__ 1
 ^
<predefines>:86:2: error: invalid preprocessing directive
#define __PIC__ 1
 ^
85 diagnostics generated.
==25125==
==25125== ERROR SUMMARY: 85 errors from 1 contexts (suppressed: 8 from 2)
==25125== malloc/free: in use at exit: 1,616 bytes in 27 blocks.
==25125== malloc/free: 728 allocs, 701 frees, 218,446 bytes allocated.
==25125== For counts of detected errors, rerun with: -v
==25125== searching for pointers to 27 not-freed blocks.
==25125== checked 228,896 bytes.
==25125==
==25125== LEAK SUMMARY:
==25125==    definitely lost: 480 bytes in 7 blocks.
==25125==      possibly lost: 0 bytes in 0 blocks.
==25125==    still reachable: 1,136 bytes in 20 blocks.
==25125==         suppressed: 0 bytes in 0 blocks.
==25125== Rerun with --leak-check=full to see details of leaked memory



More information about the cfe-dev mailing list