llvm-project/clang/test/Sema/PR2963-enum-constant.c
Richard Smith 2ec4061e39 Pedantic diagnostic correction: in C++, we have integral constant expressions,
not integer constant expressions. In passing, fix the 'folding is an extension'
diagnostic to not claim we're accepting the code, since that's not true in
-pedantic-errors mode, and add this diagnostic to -Wgnu.

llvm-svn: 148209
2012-01-15 03:51:30 +00:00

18 lines
415 B
C

// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only
typedef short short_fixed;
enum
{
// 8.8 short_fixed
SHORT_FIXED_FRACTIONAL_BITS= 8,
SHORT_FIXED_ONE= 1<<SHORT_FIXED_FRACTIONAL_BITS
};
#define FLOAT_TO_SHORT_FIXED(f) ((short_fixed)((f)*SHORT_FIXED_ONE))
enum
{
SOME_VALUE= FLOAT_TO_SHORT_FIXED(0.1) // expected-warning{{expression is not an integer constant expression}}
};