public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
* lib/test_bitmap.c:920:2: error: call to __compiletime_assert_348 declared with 'error' attribute: BUILD_BUG_ON failed: !__builtin_constant_p(res)
@ 2023-07-17  4:42 kernel test robot
  2023-07-17 10:04 ` Andy Shevchenko
  0 siblings, 1 reply; 6+ messages in thread
From: kernel test robot @ 2023-07-17  4:42 UTC (permalink / raw)
  To: Alexander Lobakin
  Cc: llvm, oe-kbuild-all, linux-kernel, Yury Norov, Andy Shevchenko

Hi Alexander,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   fdf0eaf11452d72945af31804e2a1048ee1b574c
commit: dc34d5036692c614eef23c1130ee42a201c316bf lib: test_bitmap: add compile-time optimization/evaluations assertions
date:   1 year, 1 month ago
config: arm64-randconfig-r031-20230717 (https://download.01.org/0day-ci/archive/20230717/202307171254.yFcH97ej-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce: (https://download.01.org/0day-ci/archive/20230717/202307171254.yFcH97ej-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307171254.yFcH97ej-lkp@intel.com/

All errors (new ones prefixed by >>):

>> lib/test_bitmap.c:920:2: error: call to __compiletime_assert_348 declared with 'error' attribute: BUILD_BUG_ON failed: !__builtin_constant_p(res)
           BUILD_BUG_ON(!__builtin_constant_p(res));
           ^
   include/linux/build_bug.h:50:2: note: expanded from macro 'BUILD_BUG_ON'
           BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:352:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:340:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:333:4: note: expanded from macro '__compiletime_assert'
                           prefix ## suffix();                             \
                           ^
   <scratch space>:287:1: note: expanded from here
   __compiletime_assert_348
   ^
   1 error generated.


vim +/error +920 lib/test_bitmap.c

   871	
   872	static void __init test_bitmap_const_eval(void)
   873	{
   874		DECLARE_BITMAP(bitmap, BITS_PER_LONG);
   875		unsigned long initvar = BIT(2);
   876		unsigned long bitopvar = 0;
   877		unsigned long var = 0;
   878		int res;
   879	
   880		/*
   881		 * Compilers must be able to optimize all of those to compile-time
   882		 * constants on any supported optimization level (-O2, -Os) and any
   883		 * architecture. Otherwise, trigger a build bug.
   884		 * The whole function gets optimized out then, there's nothing to do
   885		 * in runtime.
   886		 */
   887	
   888		/*
   889		 * Equals to `unsigned long bitmap[1] = { GENMASK(6, 5), }`.
   890		 * Clang on s390 optimizes bitops at compile-time as intended, but at
   891		 * the same time stops treating @bitmap and @bitopvar as compile-time
   892		 * constants after regular test_bit() is executed, thus triggering the
   893		 * build bugs below. So, call const_test_bit() there directly until
   894		 * the compiler is fixed.
   895		 */
   896		bitmap_clear(bitmap, 0, BITS_PER_LONG);
   897	#if defined(__s390__) && defined(__clang__)
   898		if (!const_test_bit(7, bitmap))
   899	#else
   900		if (!test_bit(7, bitmap))
   901	#endif
   902			bitmap_set(bitmap, 5, 2);
   903	
   904		/* Equals to `unsigned long bitopvar = BIT(20)` */
   905		__change_bit(31, &bitopvar);
   906		bitmap_shift_right(&bitopvar, &bitopvar, 11, BITS_PER_LONG);
   907	
   908		/* Equals to `unsigned long var = BIT(25)` */
   909		var |= BIT(25);
   910		if (var & BIT(0))
   911			var ^= GENMASK(9, 6);
   912	
   913		/* __const_hweight<32|64>(GENMASK(6, 5)) == 2 */
   914		res = bitmap_weight(bitmap, 20);
   915		BUILD_BUG_ON(!__builtin_constant_p(res));
   916		BUILD_BUG_ON(res != 2);
   917	
   918		/* !(BIT(31) & BIT(18)) == 1 */
   919		res = !test_bit(18, &bitopvar);
 > 920		BUILD_BUG_ON(!__builtin_constant_p(res));
   921		BUILD_BUG_ON(!res);
   922	
   923		/* BIT(2) & GENMASK(14, 8) == 0 */
   924		res = initvar & GENMASK(14, 8);
   925		BUILD_BUG_ON(!__builtin_constant_p(res));
   926		BUILD_BUG_ON(res);
   927	
   928		/* ~BIT(25) */
   929		BUILD_BUG_ON(!__builtin_constant_p(~var));
   930		BUILD_BUG_ON(~var != ~BIT(25));
   931	}
   932	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: lib/test_bitmap.c:920:2: error: call to __compiletime_assert_348 declared with 'error' attribute: BUILD_BUG_ON failed: !__builtin_constant_p(res)
  2023-07-17  4:42 lib/test_bitmap.c:920:2: error: call to __compiletime_assert_348 declared with 'error' attribute: BUILD_BUG_ON failed: !__builtin_constant_p(res) kernel test robot
@ 2023-07-17 10:04 ` Andy Shevchenko
  2023-07-17 16:35   ` Nick Desaulniers
  2023-07-18 13:40   ` Alexander Lobakin
  0 siblings, 2 replies; 6+ messages in thread
From: Andy Shevchenko @ 2023-07-17 10:04 UTC (permalink / raw)
  To: kernel test robot
  Cc: Alexander Lobakin, llvm, oe-kbuild-all, linux-kernel, Yury Norov

On Mon, Jul 17, 2023 at 12:42:57PM +0800, kernel test robot wrote:
> Hi Alexander,
> 
> FYI, the error/warning still remains.

Alexander, either you can escalate this or just propose something to discuss.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: lib/test_bitmap.c:920:2: error: call to __compiletime_assert_348 declared with 'error' attribute: BUILD_BUG_ON failed: !__builtin_constant_p(res)
  2023-07-17 10:04 ` Andy Shevchenko
@ 2023-07-17 16:35   ` Nick Desaulniers
  2023-07-17 18:08     ` Yury Norov
  2023-07-18 13:40   ` Alexander Lobakin
  1 sibling, 1 reply; 6+ messages in thread
From: Nick Desaulniers @ 2023-07-17 16:35 UTC (permalink / raw)
  To: Andy Shevchenko, Alexander Lobakin
  Cc: kernel test robot, llvm, oe-kbuild-all, linux-kernel, Yury Norov

On Mon, Jul 17, 2023 at 3:04 AM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> On Mon, Jul 17, 2023 at 12:42:57PM +0800, kernel test robot wrote:
> > Hi Alexander,
> >
> > FYI, the error/warning still remains.
>
> Alexander, either you can escalate this or just propose something to discuss.

https://github.com/ClangBuiltLinux/linux/issues/1874
Sorry, a few more fires have popped up in the meantime.  Regardless of
changes to the compiler, we still support many versions of clang for
the kernel, so we'd need some workaround in the tests regardless.  I
saw there was already one for s390 + clang, but from this report we
will need another. Feel free to use that link above in comments in the
tests; we will clean those up once I have a better grasp on what's
going on with the compiler here.

>
> --
> With Best Regards,
> Andy Shevchenko
>
>
>


-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: lib/test_bitmap.c:920:2: error: call to __compiletime_assert_348 declared with 'error' attribute: BUILD_BUG_ON failed: !__builtin_constant_p(res)
  2023-07-17 16:35   ` Nick Desaulniers
@ 2023-07-17 18:08     ` Yury Norov
  2023-07-17 18:24       ` Nick Desaulniers
  0 siblings, 1 reply; 6+ messages in thread
From: Yury Norov @ 2023-07-17 18:08 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: Andy Shevchenko, Alexander Lobakin, kernel test robot, llvm,
	oe-kbuild-all, linux-kernel

On Mon, Jul 17, 2023 at 09:35:49AM -0700, Nick Desaulniers wrote:
> On Mon, Jul 17, 2023 at 3:04 AM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> >
> > On Mon, Jul 17, 2023 at 12:42:57PM +0800, kernel test robot wrote:
> > > Hi Alexander,
> > >
> > > FYI, the error/warning still remains.
> >
> > Alexander, either you can escalate this or just propose something to discuss.
> 
> https://github.com/ClangBuiltLinux/linux/issues/1874
> Sorry, a few more fires have popped up in the meantime.  Regardless of
> changes to the compiler, we still support many versions of clang for
> the kernel, so we'd need some workaround in the tests regardless.  I
> saw there was already one for s390 + clang, but from this report we
> will need another. Feel free to use that link above in comments in the
> tests; we will clean those up once I have a better grasp on what's
> going on with the compiler here.

So, it's:
 - not related to bitmap code,
 - not only s390 issue, and 
 - fires with CLANG when GCOV and KASAN are enabled together.

Is that correct? If so, I can disable the test for CLANG+GCOV+KASAN
configuration unless the above is fixed.

Nick, can you please confirm?

Because it's a build breaker, I'd like to have it fixed in v6.5.

Thanks,
Yury

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: lib/test_bitmap.c:920:2: error: call to __compiletime_assert_348 declared with 'error' attribute: BUILD_BUG_ON failed: !__builtin_constant_p(res)
  2023-07-17 18:08     ` Yury Norov
@ 2023-07-17 18:24       ` Nick Desaulniers
  0 siblings, 0 replies; 6+ messages in thread
From: Nick Desaulniers @ 2023-07-17 18:24 UTC (permalink / raw)
  To: Yury Norov
  Cc: Andy Shevchenko, Alexander Lobakin, kernel test robot, llvm,
	oe-kbuild-all, linux-kernel

On Mon, Jul 17, 2023 at 11:09 AM Yury Norov <yury.norov@gmail.com> wrote:
>
> On Mon, Jul 17, 2023 at 09:35:49AM -0700, Nick Desaulniers wrote:
> > On Mon, Jul 17, 2023 at 3:04 AM Andy Shevchenko
> > <andriy.shevchenko@linux.intel.com> wrote:
> > >
> > > On Mon, Jul 17, 2023 at 12:42:57PM +0800, kernel test robot wrote:
> > > > Hi Alexander,
> > > >
> > > > FYI, the error/warning still remains.
> > >
> > > Alexander, either you can escalate this or just propose something to discuss.
> >
> > https://github.com/ClangBuiltLinux/linux/issues/1874
> > Sorry, a few more fires have popped up in the meantime.  Regardless of
> > changes to the compiler, we still support many versions of clang for
> > the kernel, so we'd need some workaround in the tests regardless.  I
> > saw there was already one for s390 + clang, but from this report we
> > will need another. Feel free to use that link above in comments in the
> > tests; we will clean those up once I have a better grasp on what's
> > going on with the compiler here.
>
> So, it's:
>  - not related to bitmap code,
>  - not only s390 issue, and
>  - fires with CLANG when GCOV and KASAN are enabled together.
>
> Is that correct? If so, I can disable the test for CLANG+GCOV+KASAN
> configuration unless the above is fixed.
>
> Nick, can you please confirm?

Yes, and I think disabling the test for that combination is the way to
go for now. I will sort out what's going on with this config and
hopefully we can relax that combination in the future.

>
> Because it's a build breaker, I'd like to have it fixed in v6.5.
>
> Thanks,
> Yury



-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: lib/test_bitmap.c:920:2: error: call to __compiletime_assert_348 declared with 'error' attribute: BUILD_BUG_ON failed: !__builtin_constant_p(res)
  2023-07-17 10:04 ` Andy Shevchenko
  2023-07-17 16:35   ` Nick Desaulniers
@ 2023-07-18 13:40   ` Alexander Lobakin
  1 sibling, 0 replies; 6+ messages in thread
From: Alexander Lobakin @ 2023-07-18 13:40 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Alexander Lobakin, llvm, oe-kbuild-all, linux-kernel, Yury Norov,
	kernel test robot

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: Mon, 17 Jul 2023 13:04:11 +0300

> On Mon, Jul 17, 2023 at 12:42:57PM +0800, kernel test robot wrote:
>> Hi Alexander,

Hi,

>>
>> FYI, the error/warning still remains.
> 
> Alexander, either you can escalate this or just propose something to discuss.
> 

Sorry, I had some days off.
I've been waiting for more info from the Clang devs to understand
whether and how I should fix this.
I see that Yury submitted fix (two actually) already, so I'll go review
it now.

Thanks,
Olek

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-07-18 13:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-17  4:42 lib/test_bitmap.c:920:2: error: call to __compiletime_assert_348 declared with 'error' attribute: BUILD_BUG_ON failed: !__builtin_constant_p(res) kernel test robot
2023-07-17 10:04 ` Andy Shevchenko
2023-07-17 16:35   ` Nick Desaulniers
2023-07-17 18:08     ` Yury Norov
2023-07-17 18:24       ` Nick Desaulniers
2023-07-18 13:40   ` Alexander Lobakin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox