I have already committed a fix in "http://llvm.org/viewvc/llvm-project?view=revision&revision=188271” which used regexps to make sure the variables match.
In your fix you would still rely on the name “%ap”: // CHECK: %ap = alloca i8*, align 4 Best, Arnold On Aug 13, 2013, at 10:06 AM, Robert Lytton <[email protected]> wrote: > Hi, > Is this a suitable fix? > Apologies > Robert > ________________________________________ > From: Arnold Schwaighofer [[email protected]] > Sent: 13 August 2013 15:55 > To: Robert Lytton > Cc: [email protected]; Evgeniy Stepanov > Subject: Re: r188258 - Add XCore target > > Fixed in r188271. > > It was breaking our bots too. > > http://llvm.org/docs/CommandGuide/FileCheck.html has a description of the > syntax. > > Thanks, > Arnold > > On Aug 13, 2013, at 9:30 AM, Evgeniy Stepanov <[email protected]> > wrote: > >> I usually just omit the identifiers in tests. If they really matter, >> you can use regexps like that, but it often makes the test more >> sensitive to unrelated changes and various optimizations. >> >> In this case, there was report in the IRC with this failure: >> http://pastebin.com/RDGnH4ny >> >> On Tue, Aug 13, 2013 at 6:27 PM, Robert Lytton <[email protected]> wrote: >>> Hi Evgeniy, >>> >>> Please could you elaborate on what the test should have been. >>> Is it better to replace the identifiers with regular expression matching? >>> viz: >>> char* v1 = va_arg (ap, char*); >>> // CHECK: %{{[0-9]+}} = va_arg i8** [[AP:%arg[0-9]*]], i8* >>> >>> Robert >>> >>> ________________________________________ >>> From: Evgeniy Stepanov [[email protected]] >>> Sent: 13 August 2013 14:16 >>> To: Robert Lytton >>> Cc: [email protected] >>> Subject: Re: r188258 - Add XCore target >>> >>>> %ap >>> Please don't use named (as well as numbered) identifiers in lit tests. >>> They are fragile and can be stripped in optimized builds. >>> >>> >>> On Tue, Aug 13, 2013 at 1:43 PM, Robert Lytton <[email protected]> wrote: >>>> Author: rlytton >>>> Date: Tue Aug 13 04:43:10 2013 >>>> New Revision: 188258 >>>> >>>> URL: http://llvm.org/viewvc/llvm-project?rev=188258&view=rev >>>> Log: >>>> Add XCore target >>>> >>>> Added: >>>> cfe/trunk/include/clang/Basic/BuiltinsXCore.def >>>> cfe/trunk/test/CodeGen/xcore-abi.c >>>> cfe/trunk/test/Driver/xcore-opts.c >>>> Modified: >>>> cfe/trunk/include/clang/Basic/TargetBuiltins.h >>>> cfe/trunk/lib/Basic/Targets.cpp >>>> cfe/trunk/lib/CodeGen/TargetInfo.cpp >>>> cfe/trunk/lib/Driver/Tools.cpp >>>> cfe/trunk/test/Preprocessor/init.c >>>> cfe/trunk/test/Preprocessor/stdint.c >>>> >>>> Added: cfe/trunk/include/clang/Basic/BuiltinsXCore.def >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsXCore.def?rev=188258&view=auto >>>> ============================================================================== >>>> --- cfe/trunk/include/clang/Basic/BuiltinsXCore.def (added) >>>> +++ cfe/trunk/include/clang/Basic/BuiltinsXCore.def Tue Aug 13 04:43:10 >>>> 2013 >>>> @@ -0,0 +1,22 @@ >>>> +//===--- BuiltinsXCore.def - XCore Builtin function database ----*- C++ >>>> -*-===// >>>> +// >>>> +// The LLVM Compiler Infrastructure >>>> +// >>>> +// This file is distributed under the University of Illinois Open Source >>>> +// License. See LICENSE.TXT for details. >>>> +// >>>> +//===----------------------------------------------------------------------===// >>>> +// >>>> +// This file defines the XCore-specific builtin function database. Users >>>> of >>>> +// this file must define the BUILTIN macro to make use of this >>>> information. >>>> +// >>>> +//===----------------------------------------------------------------------===// >>>> + >>>> +// The format of this database matches clang/Basic/Builtins.def. >>>> + >>>> +BUILTIN(__builtin_bitrev, "UiUi", "nc") >>>> +BUILTIN(__builtin_getid, "Si", "nc") >>>> +BUILTIN(__builtin_getps, "UiUi", "n") >>>> +BUILTIN(__builtin_setps, "vUiUi", "n") >>>> + >>>> +#undef BUILTIN >>>> >>>> Modified: cfe/trunk/include/clang/Basic/TargetBuiltins.h >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/TargetBuiltins.h?rev=188258&r1=188257&r2=188258&view=diff >>>> ============================================================================== >>>> --- cfe/trunk/include/clang/Basic/TargetBuiltins.h (original) >>>> +++ cfe/trunk/include/clang/Basic/TargetBuiltins.h Tue Aug 13 04:43:10 2013 >>>> @@ -131,6 +131,16 @@ namespace clang { >>>> LastTSBuiltin >>>> }; >>>> } >>>> + >>>> + /// \brief XCore builtins >>>> + namespace XCore { >>>> + enum { >>>> + LastTIBuiltin = clang::Builtin::FirstTSBuiltin-1, >>>> +#define BUILTIN(ID, TYPE, ATTRS) BI##ID, >>>> +#include "clang/Basic/BuiltinsXCore.def" >>>> + LastTSBuiltin >>>> + }; >>>> + } >>>> } // end namespace clang. >>>> >>>> #endif >>>> >>>> Modified: cfe/trunk/lib/Basic/Targets.cpp >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=188258&r1=188257&r2=188258&view=diff >>>> ============================================================================== >>>> --- cfe/trunk/lib/Basic/Targets.cpp (original) >>>> +++ cfe/trunk/lib/Basic/Targets.cpp Tue Aug 13 04:43:10 2013 >>>> @@ -5138,6 +5138,64 @@ namespace { >>>> }; >>>> } >>>> >>>> +namespace { >>>> +class XCoreTargetInfo : public TargetInfo { >>>> + static const Builtin::Info BuiltinInfo[]; >>>> +public: >>>> + XCoreTargetInfo(const llvm::Triple &Triple) : TargetInfo(Triple) { >>>> + BigEndian = false; >>>> + NoAsmVariants = true; >>>> + LongLongAlign = 32; >>>> + SuitableAlign = 32; >>>> + DoubleAlign = LongDoubleAlign = 32; >>>> + UseZeroLengthBitfieldAlignment = true; >>>> + DescriptionString = "e-p:32:32:32-a0:0:32-n32" >>>> + "-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32" >>>> + "-f16:16:32-f32:32:32-f64:32:32"; >>>> + } >>>> + virtual void getTargetDefines(const LangOptions &Opts, >>>> + MacroBuilder &Builder) const { >>>> + Builder.defineMacro("__XS1B__"); >>>> + } >>>> + virtual void getTargetBuiltins(const Builtin::Info *&Records, >>>> + unsigned &NumRecords) const { >>>> + Records = BuiltinInfo; >>>> + NumRecords = clang::XCore::LastTSBuiltin-Builtin::FirstTSBuiltin; >>>> + } >>>> + virtual BuiltinVaListKind getBuiltinVaListKind() const { >>>> + return TargetInfo::VoidPtrBuiltinVaList; >>>> + } >>>> + virtual const char *getClobbers() const { >>>> + return ""; >>>> + } >>>> + virtual void getGCCRegNames(const char * const *&Names, >>>> + unsigned &NumNames) const { >>>> + static const char * const GCCRegNames[] = { >>>> + "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", >>>> + "r8", "r9", "r10", "r11", "cp", "dp", "sp", "lr" >>>> + }; >>>> + Names = GCCRegNames; >>>> + NumNames = llvm::array_lengthof(GCCRegNames); >>>> + } >>>> + virtual void getGCCRegAliases(const GCCRegAlias *&Aliases, >>>> + unsigned &NumAliases) const { >>>> + Aliases = NULL; >>>> + NumAliases = 0; >>>> + } >>>> + virtual bool validateAsmConstraint(const char *&Name, >>>> + TargetInfo::ConstraintInfo &Info) >>>> const { >>>> + return false; >>>> + } >>>> +}; >>>> + >>>> +const Builtin::Info XCoreTargetInfo::BuiltinInfo[] = { >>>> +#define BUILTIN(ID, TYPE, ATTRS) { #ID, TYPE, ATTRS, 0, ALL_LANGUAGES }, >>>> +#define LIBBUILTIN(ID, TYPE, ATTRS, HEADER) { #ID, TYPE, ATTRS, HEADER,\ >>>> + ALL_LANGUAGES }, >>>> +#include "clang/Basic/BuiltinsXCore.def" >>>> +}; >>>> +} // end anonymous namespace. >>>> + >>>> >>>> //===----------------------------------------------------------------------===// >>>> // Driver code >>>> @@ -5150,6 +5208,9 @@ static TargetInfo *AllocateTarget(const >>>> default: >>>> return NULL; >>>> >>>> + case llvm::Triple::xcore: >>>> + return new XCoreTargetInfo(Triple); >>>> + >>>> case llvm::Triple::hexagon: >>>> return new HexagonTargetInfo(Triple); >>>> >>>> >>>> Modified: cfe/trunk/lib/CodeGen/TargetInfo.cpp >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/TargetInfo.cpp?rev=188258&r1=188257&r2=188258&view=diff >>>> ============================================================================== >>>> --- cfe/trunk/lib/CodeGen/TargetInfo.cpp (original) >>>> +++ cfe/trunk/lib/CodeGen/TargetInfo.cpp Tue Aug 13 04:43:10 2013 >>>> @@ -5366,6 +5366,22 @@ public: >>>> } // end anonymous namespace >>>> >>>> >>>> +//===----------------------------------------------------------------------===// >>>> +// Xcore ABI Implementation >>>> +//===----------------------------------------------------------------------===// >>>> +namespace { >>>> +class XcoreTargetCodeGenInfo : public TargetCodeGenInfo { >>>> +public: >>>> + XcoreTargetCodeGenInfo(CodeGenTypes &CGT) >>>> + :TargetCodeGenInfo(new DefaultABIInfo(CGT)) {} >>>> +}; >>>> +} // end anonymous namespace >>>> + >>>> + >>>> +//===----------------------------------------------------------------------===// >>>> +// Driver code >>>> +//===----------------------------------------------------------------------===// >>>> + >>>> const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() { >>>> if (TheTargetCodeGenInfo) >>>> return *TheTargetCodeGenInfo; >>>> @@ -5474,5 +5490,8 @@ const TargetCodeGenInfo &CodeGenModule:: >>>> return *(TheTargetCodeGenInfo = new HexagonTargetCodeGenInfo(Types)); >>>> case llvm::Triple::sparcv9: >>>> return *(TheTargetCodeGenInfo = new SparcV9TargetCodeGenInfo(Types)); >>>> + case llvm::Triple::xcore: >>>> + return *(TheTargetCodeGenInfo = new XcoreTargetCodeGenInfo(Types)); >>>> + >>>> } >>>> } >>>> >>>> Modified: cfe/trunk/lib/Driver/Tools.cpp >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=188258&r1=188257&r2=188258&view=diff >>>> ============================================================================== >>>> --- cfe/trunk/lib/Driver/Tools.cpp (original) >>>> +++ cfe/trunk/lib/Driver/Tools.cpp Tue Aug 13 04:43:10 2013 >>>> @@ -552,10 +552,21 @@ static bool isSignedCharDefault(const ll >>>> >>>> case llvm::Triple::ppc64le: >>>> case llvm::Triple::systemz: >>>> + case llvm::Triple::xcore: >>>> return false; >>>> } >>>> } >>>> >>>> +static bool isNoCommonDefault(const llvm::Triple &Triple) { >>>> + switch (Triple.getArch()) { >>>> + default: >>>> + return false; >>>> + >>>> + case llvm::Triple::xcore: >>>> + return true; >>>> + } >>>> +} >>>> + >>>> // Handle -mfpu=. >>>> // >>>> // FIXME: Centralize feature selection, defaulting shouldn't be also in the >>>> @@ -1761,6 +1772,9 @@ static bool shouldUseFramePointer(const >>>> return false; >>>> } >>>> >>>> + if (Triple.getArch() == llvm::Triple::xcore) >>>> + return false; >>>> + >>>> return true; >>>> } >>>> >>>> @@ -1780,6 +1794,9 @@ static bool shouldUseLeafFramePointer(co >>>> return false; >>>> } >>>> >>>> + if (Triple.getArch() == llvm::Triple::xcore) >>>> + return false; >>>> + >>>> return true; >>>> } >>>> >>>> @@ -3200,7 +3217,7 @@ void Clang::ConstructJob(Compilation &C, >>>> CmdArgs.push_back("-fpack-struct=1"); >>>> } >>>> >>>> - if (KernelOrKext) { >>>> + if (KernelOrKext || isNoCommonDefault(getToolChain().getTriple())) { >>>> if (!Args.hasArg(options::OPT_fcommon)) >>>> CmdArgs.push_back("-fno-common"); >>>> Args.ClaimAllArgs(options::OPT_fno_common); >>>> >>>> Added: cfe/trunk/test/CodeGen/xcore-abi.c >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/xcore-abi.c?rev=188258&view=auto >>>> ============================================================================== >>>> --- cfe/trunk/test/CodeGen/xcore-abi.c (added) >>>> +++ cfe/trunk/test/CodeGen/xcore-abi.c Tue Aug 13 04:43:10 2013 >>>> @@ -0,0 +1,35 @@ >>>> +// RUN: %clang -target xcore -O1 -o - -emit-llvm -S %s | FileCheck %s >>>> + >>>> +// CHECK: target datalayout = >>>> "e-p:32:32:32-a0:0:32-n32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f16:16:32-f32:32:32-f64:32:32" >>>> +// CHECK: target triple = "xcore" >>>> + >>>> +#include <stdarg.h> >>>> +struct x { int a; }; >>>> +void testva (int n, ...) { >>>> + va_list ap; >>>> + // CHECK: %ap = alloca i8*, align 4 >>>> + >>>> + char* v1 = va_arg (ap, char*); >>>> + // CHECK: %0 = va_arg i8** %ap, i8* >>>> + >>>> + int v2 = va_arg (ap, int); >>>> + // CHECK: %1 = va_arg i8** %ap, i32 >>>> + >>>> + long long int v3 = va_arg (ap, long long int); >>>> + // CHECK: %2 = va_arg i8** %ap, i64 >>>> + >>>> + //struct x t = va_arg (ap, struct x); >>>> + //cannot compile aggregate va_arg expressions yet >>>> +} >>>> + >>>> +void testbuiltin (void) { >>>> +// CHECK: %0 = tail call i32 @llvm.xcore.getid() >>>> +// CHECK: %1 = tail call i32 @llvm.xcore.getps(i32 %0) >>>> +// CHECK: %2 = tail call i32 @llvm.xcore.bitrev(i32 %1) >>>> +// CHECK: tail call void @llvm.xcore.setps(i32 %0, i32 %2) >>>> + int i = __builtin_getid(); >>>> + unsigned int ui = __builtin_getps(i); >>>> + ui = __builtin_bitrev(ui); >>>> + __builtin_setps(i,ui); >>>> + >>>> +} >>>> >>>> Added: cfe/trunk/test/Driver/xcore-opts.c >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/xcore-opts.c?rev=188258&view=auto >>>> ============================================================================== >>>> --- cfe/trunk/test/Driver/xcore-opts.c (added) >>>> +++ cfe/trunk/test/Driver/xcore-opts.c Tue Aug 13 04:43:10 2013 >>>> @@ -0,0 +1,15 @@ >>>> +// RUN: %clang -target xcore -O1 -o - -emit-llvm -S %s | FileCheck %s >>>> + >>>> +// CHECK: @g1 = global >>>> +int g1; >>>> +// CHECK: @g2 = common global i32 0, align 4 >>>> +int g2 __attribute__((common)); >>>> + >>>> +// CHECK: define zeroext i8 @testchar() >>>> +// CHECK: ret i8 -1 >>>> +char testchar (void) { >>>> + return (char)-1; >>>> +} >>>> + >>>> +// CHECK: "no-frame-pointer-elim"="false" >>>> +// CHECK: "no-frame-pointer-elim-non-leaf"="false" >>>> >>>> Modified: cfe/trunk/test/Preprocessor/init.c >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/init.c?rev=188258&r1=188257&r2=188258&view=diff >>>> ============================================================================== >>>> --- cfe/trunk/test/Preprocessor/init.c (original) >>>> +++ cfe/trunk/test/Preprocessor/init.c Tue Aug 13 04:43:10 2013 >>>> @@ -2946,3 +2946,6 @@ >>>> // ANDROID: __ANDROID__ 1 >>>> // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-unknown-freebsd >>>> < /dev/null | FileCheck -check-prefix PPC64-FREEBSD %s >>>> // PPC64-FREEBSD-NOT: #define __LONG_DOUBLE_128__ 1 >>>> +// >>>> +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=xcore-none-none < >>>> /dev/null | FileCheck -check-prefix XCORE %s >>>> +// XCORE:#define __XS1B__ 1 >>>> >>>> Modified: cfe/trunk/test/Preprocessor/stdint.c >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/stdint.c?rev=188258&r1=188257&r2=188258&view=diff >>>> ============================================================================== >>>> --- cfe/trunk/test/Preprocessor/stdint.c (original) >>>> +++ cfe/trunk/test/Preprocessor/stdint.c Tue Aug 13 04:43:10 2013 >>>> @@ -963,6 +963,114 @@ >>>> // I386_MINGW32:WCHAR_MIN_ 0U >>>> // >>>> // >>>> +// RUN: %clang_cc1 -E -ffreestanding -triple=xcore-none-none %s | >>>> FileCheck -check-prefix XCORE %s >>>> +// >>>> +// XCORE:typedef signed long long int int64_t; >>>> +// XCORE:typedef unsigned long long int uint64_t; >>>> +// XCORE:typedef int64_t int_least64_t; >>>> +// XCORE:typedef uint64_t uint_least64_t; >>>> +// XCORE:typedef int64_t int_fast64_t; >>>> +// XCORE:typedef uint64_t uint_fast64_t; >>>> +// >>>> +// XCORE:typedef signed int int32_t; >>>> +// XCORE:typedef unsigned int uint32_t; >>>> +// XCORE:typedef int32_t int_least32_t; >>>> +// XCORE:typedef uint32_t uint_least32_t; >>>> +// XCORE:typedef int32_t int_fast32_t; >>>> +// XCORE:typedef uint32_t uint_fast32_t; >>>> +// >>>> +// XCORE:typedef signed short int16_t; >>>> +// XCORE:typedef unsigned short uint16_t; >>>> +// XCORE:typedef int16_t int_least16_t; >>>> +// XCORE:typedef uint16_t uint_least16_t; >>>> +// XCORE:typedef int16_t int_fast16_t; >>>> +// XCORE:typedef uint16_t uint_fast16_t; >>>> +// >>>> +// XCORE:typedef signed char int8_t; >>>> +// XCORE:typedef unsigned char uint8_t; >>>> +// XCORE:typedef int8_t int_least8_t; >>>> +// XCORE:typedef uint8_t uint_least8_t; >>>> +// XCORE:typedef int8_t int_fast8_t; >>>> +// XCORE:typedef uint8_t uint_fast8_t; >>>> +// >>>> +// XCORE:typedef int32_t intptr_t; >>>> +// XCORE:typedef uint32_t uintptr_t; >>>> +// >>>> +// XCORE:typedef long long int intmax_t; >>>> +// XCORE:typedef long long unsigned int uintmax_t; >>>> +// >>>> +// XCORE:INT8_MAX_ 127 >>>> +// XCORE:INT8_MIN_ (-127 -1) >>>> +// XCORE:UINT8_MAX_ 255 >>>> +// XCORE:INT_LEAST8_MIN_ (-127 -1) >>>> +// XCORE:INT_LEAST8_MAX_ 127 >>>> +// XCORE:UINT_LEAST8_MAX_ 255 >>>> +// XCORE:INT_FAST8_MIN_ (-127 -1) >>>> +// XCORE:INT_FAST8_MAX_ 127 >>>> +// XCORE:UINT_FAST8_MAX_ 255 >>>> +// >>>> +// XCORE:INT16_MAX_ 32767 >>>> +// XCORE:INT16_MIN_ (-32767 -1) >>>> +// XCORE:UINT16_MAX_ 65535 >>>> +// XCORE:INT_LEAST16_MIN_ (-32767 -1) >>>> +// XCORE:INT_LEAST16_MAX_ 32767 >>>> +// XCORE:UINT_LEAST16_MAX_ 65535 >>>> +// XCORE:INT_FAST16_MIN_ (-32767 -1) >>>> +// XCORE:INT_FAST16_MAX_ 32767 >>>> +// XCORE:UINT_FAST16_MAX_ 65535 >>>> +// >>>> +// XCORE:INT32_MAX_ 2147483647 >>>> +// XCORE:INT32_MIN_ (-2147483647 -1) >>>> +// XCORE:UINT32_MAX_ 4294967295U >>>> +// XCORE:INT_LEAST32_MIN_ (-2147483647 -1) >>>> +// XCORE:INT_LEAST32_MAX_ 2147483647 >>>> +// XCORE:UINT_LEAST32_MAX_ 4294967295U >>>> +// XCORE:INT_FAST32_MIN_ (-2147483647 -1) >>>> +// XCORE:INT_FAST32_MAX_ 2147483647 >>>> +// XCORE:UINT_FAST32_MAX_ 4294967295U >>>> +// >>>> +// XCORE:INT64_MAX_ 9223372036854775807LL >>>> +// XCORE:INT64_MIN_ (-9223372036854775807LL -1) >>>> +// XCORE:UINT64_MAX_ 18446744073709551615ULL >>>> +// XCORE:INT_LEAST64_MIN_ (-9223372036854775807LL -1) >>>> +// XCORE:INT_LEAST64_MAX_ 9223372036854775807LL >>>> +// XCORE:UINT_LEAST64_MAX_ 18446744073709551615ULL >>>> +// XCORE:INT_FAST64_MIN_ (-9223372036854775807LL -1) >>>> +// XCORE:INT_FAST64_MAX_ 9223372036854775807LL >>>> +// XCORE:UINT_FAST64_MAX_ 18446744073709551615ULL >>>> +// >>>> +// XCORE:INTPTR_MIN_ (-2147483647 -1) >>>> +// XCORE:INTPTR_MAX_ 2147483647 >>>> +// XCORE:UINTPTR_MAX_ 4294967295U >>>> +// XCORE:PTRDIFF_MIN_ (-2147483647 -1) >>>> +// XCORE:PTRDIFF_MAX_ 2147483647 >>>> +// XCORE:SIZE_MAX_ 4294967295U >>>> +// >>>> +// XCORE:INTMAX_MIN_ (-9223372036854775807LL -1) >>>> +// XCORE:INTMAX_MAX_ 9223372036854775807LL >>>> +// XCORE:UINTMAX_MAX_ 18446744073709551615ULL >>>> +// >>>> +// XCORE:SIG_ATOMIC_MIN_ (-2147483647 -1) >>>> +// XCORE:SIG_ATOMIC_MAX_ 2147483647 >>>> +// XCORE:WINT_MIN_ (-2147483647 -1) >>>> +// XCORE:WINT_MAX_ 2147483647 >>>> +// >>>> +// XCORE:WCHAR_MAX_ 2147483647 >>>> +// XCORE:WCHAR_MIN_ (-2147483647 -1) >>>> +// >>>> +// XCORE:INT8_C_(0) 0 >>>> +// XCORE:UINT8_C_(0) 0U >>>> +// XCORE:INT16_C_(0) 0 >>>> +// XCORE:UINT16_C_(0) 0U >>>> +// XCORE:INT32_C_(0) 0 >>>> +// XCORE:UINT32_C_(0) 0U >>>> +// XCORE:INT64_C_(0) 0LL >>>> +// XCORE:UINT64_C_(0) 0ULL >>>> +// >>>> +// XCORE:INTMAX_C_(0) 0LL >>>> +// XCORE:UINTMAX_C_(0) 0ULL >>>> +// >>>> +// >>>> // stdint.h forms several macro definitions by pasting together identifiers >>>> // to form names (eg. int32_t is formed from int ## 32 ## _t). The >>>> following >>>> // case tests that these joining operations are performed correctly even if >>>> >>>> >>>> _______________________________________________ >>>> cfe-commits mailing list >>>> [email protected] >>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >> _______________________________________________ >> cfe-commits mailing list >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > > <PatchBrittleTest> _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
