https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85556

            Bug ID: 85556
           Summary: attribute no_sanitize does not accept multiple options
                    as documented
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: doko at gcc dot gnu.org
                CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
                    jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at 
gcc dot gnu.org
  Target Milestone: ---

[forwarded from https://bugs.debian.org/891489]

In
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-no_005fsanitize-function-attribute
gcc 8.0.1 claims to add a no_sanitize attribute which works the same as
the clang one does.

In practice however it doesn't, and it currently will only accept a
single option.  The example given above is:

  $ cat nosan.c
  void __attribute__ ((no_sanitize ("alignment", "object-size")))
  f () { /* Do something. */; }

  int main(void) { return 0; }


Which results in:

  $ gcc-8 nosan.c 
  nosan.c:3:1: error: wrong number of arguments specified for ‘no_sanitize’
attribute
   f () { /* Do something. */; }
   ^


It would be really nice if that did work as documented, to avoid having
to special case this in user code even more than we already do.

Reply via email to