[cfe-dev] c11.c/cxx11.cpp tests are failing for Hexagon

Jyotsna Verma jverma at codeaurora.org
Thu Apr 18 10:16:31 PDT 2013


>These tests are testing the behavior of our <stdint.h> implementation. It
would certainly make sense to make them avoid including a system-provided
<stdint.h>. That will probably require somewhat different fixes for each
test:

 

>I think (perhaps Daniel can confirm) that the c11.c test just wants to test
the contents of our own <stdint.h>, so modifying the test's RUN: line so
that the system-provided <stdint.h> is not on the search path would suffice.

 

I don't think changing the search path alone will help. As I mentioned
earlier, system-provided stdint.h is included from lib/Headers/stdint.h if
__STDC_HOSTED__ macro is defined. I found this piece of code in
lib/Frontend/InitPreprocessor.cpp which defines the macro:

 

  if (LangOpts.Freestanding)

    Builder.defineMacro("__STDC_HOSTED__", "0");

  else

    Builder.defineMacro("__STDC_HOSTED__");

 

I think the only way to avoid system stdint.h from being included is to
specify -ffreestanding option at the run command.

 

>For the cxx11.c test, what we're checking is that our builtin <stdint.h>
correctly works around http://sourceware.org/PR15366 -- though a better
(non-system-dependent) test here would be to craft a "system header"
<stdint.h> with the C99-specified behavior and put that in the system
headers include path for the test.

 

I'm not sure if I understand it correctly. <stdint.h> in lib/Headers defines
__STDC_LIMIT_MACROS and  __STDC_CONSTANT_MACROS which are used by system
<stdint.h> to define SIZE_MAX which is checked in the test. So, I suppose
you want to craft the new header file with these sections. But, what do you
mean by putting the file in the system headers include path? Are you
proposing to modify the RUN: line to search some temporary location?
 
I'm planning to XFAIL these two tests for Hexagon until the fix.

 

Thanks,

Jyotsna 

 

--

Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by
The Linux Foundation

 

From: metafoo at gmail.com [mailto:metafoo at gmail.com] On Behalf Of Richard
Smith
Sent: Wednesday, April 17, 2013 2:19 PM
To: Jyotsna Verma
Cc: Daniel Dunbar; cfe-dev at cs.uiuc.edu Developers
Subject: Re: c11.c/cxx11.cpp tests are failing for Hexagon

 

On Wed, Apr 17, 2013 at 10:39 AM, Jyotsna Verma <jverma at codeaurora.org>
wrote:

Hi Daniel/Richard,

I'm seeing c11.c and cxx11.cpp tests failing on Hexagon with these two
changes - r179427 and r179419.

After your changes, we include stdint.h file (from lib/Headers) in both
these tests. However,  if  __STDC_HOSTED__ macro is defined,
lib/Headers/stdint.h includes system stdint.h file which includes features.h
-> gnu/stubs-32.h. Since, we don't have stubs-32.h header file available for
Hexagon, it causes the tests to fail.

Please help me understand why the tests were modified to include stdint.h
file and how to fix them for Hexagon.

 

These tests are testing the behavior of our <stdint.h> implementation. It
would certainly make sense to make them avoid including a system-provided
<stdint.h>. That will probably require somewhat different fixes for each
test:

 

I think (perhaps Daniel can confirm) that the c11.c test just wants to test
the contents of our own <stdint.h>, so modifying the test's RUN: line so
that the system-provided <stdint.h> is not on the search path would suffice.

 

For the cxx11.c test, what we're checking is that our builtin <stdint.h>
correctly works around http://sourceware.org/PR15366 -- though a better
(non-system-dependent) test here would be to craft a "system header"
<stdint.h> with the C99-specified behavior and put that in the system
headers include path for the test.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130418/bcd6dd2f/attachment.html>


More information about the cfe-dev mailing list