From: Eli Friedman Date: Fri, 12 Jun 2009 20:04:25 +0000 (+0000) Subject: Some updates to the gcc extension sections of the users manual. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ca130bd838d099eddace93dc20abbeda69120856;p=clang Some updates to the gcc extension sections of the users manual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73249 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/UsersManual.html b/docs/UsersManual.html index 221e07cdfd..90b305b2a5 100644 --- a/docs/UsersManual.html +++ b/docs/UsersManual.html @@ -564,17 +564,25 @@ implemented.
  • clang does not support nested functions; this is a complex feature which is infrequently used, so it is unlikely to be implemented anytime soon.
  • -
  • clang does not support __builtin_apply and friends; this extension requires -complex code generator support that does not currently exist in LLVM, and there -is very little demand, so it is unlikely to be implemented anytime soon.
  • -
  • clang does not support global register variables, this is unlikely -to be implemented soon.
  • +to be implemented soon because it requires additional LLVM backend support. +
  • clang does not support static initialization of flexible array members. This appears to be a rarely used extension, but could be implemented pending user demand.
  • +
  • clang does not support __builtin_va_arg_pack/__builtin_va_arg_pack_len. +This is used rarely, but in some potentially interesting places, like the +glibc headers, so it may be implemented pending user demand. Note that +because clang pretends to be like GCC 4.2, and this extension was introduced +in 4.3, the glibc headers will not try to use this extension with clang at +the moment.
  • + +
  • clang does not support the gcc extension for forward-declaring function +parameters; this has not showed up in any real-world code yet, though, so it +might never be implemented.
  • +

    This is not a complete list; if you find an unsupported extension @@ -592,7 +600,7 @@ bug-reporting guidelines somewhere?).

    clang does not support the gcc extension that allows variable-length arrays in structures. This is for a few of reasons: one, it is tricky to implement, two, the extension is completely undocumented, and three, the -extension appears to be very rarely used.

    +extension appears to be rarely used.

    clang does not support duplicate definitions of a function where one is inline. This complicates clients of the AST which normally can expect there is @@ -600,6 +608,18 @@ at most one definition for each function. Source code using this feature should be changed to define the inline and out-of-line definitions in separate translation units.

    +
  • clang does not have an equivalent to gcc's "fold"; this means that +clang doesn't accept some constructs gcc might accept in contexts where a +constant expression is required, like "x-x" where x is a variable, or calls +to C library functions like strlen.
  • + +

    clang does not support multiple alternative constraints in inline asm; this +is an extremely obscure feature which would be complicated to implement +correctly.

    + +
  • clang does not support __builtin_apply and friends; this extension is +extremely obscure and difficult to implement reliably.
  • +

    Microsoft extensions