{"id":814230,"url":"http://patchwork.ozlabs.org/api/patches/814230/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/14071962.Srb1NyX0Vs@polaris/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<14071962.Srb1NyX0Vs@polaris>","list_archive_url":null,"date":"2017-09-15T11:07:08","name":"[c-family] Issue a warning in C++ on pragma scalar_storage_order","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"85d002140b251e4256525a064281a14ccf76c0dc","submitter":{"id":4365,"url":"http://patchwork.ozlabs.org/api/people/4365/?format=json","name":"Eric Botcazou","email":"ebotcazou@adacore.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/14071962.Srb1NyX0Vs@polaris/mbox/","series":[{"id":3284,"url":"http://patchwork.ozlabs.org/api/series/3284/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=3284","date":"2017-09-15T11:07:08","name":"[c-family] Issue a warning in C++ on pragma scalar_storage_order","version":1,"mbox":"http://patchwork.ozlabs.org/series/3284/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/814230/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/814230/checks/","tags":{},"related":[],"headers":{"Return-Path":"<gcc-patches-return-462226-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-462226-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"JEFkz0Aj\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xtt0Q13pRz9sBZ\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 15 Sep 2017 21:07:31 +1000 (AEST)","(qmail 83730 invoked by alias); 15 Sep 2017 11:07:23 -0000","(qmail 83718 invoked by uid 89); 15 Sep 2017 11:07:22 -0000","from mel.act-europe.fr (HELO smtp.eu.adacore.com) (194.98.77.210)\n\tby sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with\n\tESMTP; Fri, 15 Sep 2017 11:07:12 +0000","from localhost (localhost [127.0.0.1])\tby\n\tfiltered-smtp.eu.adacore.com (Postfix) with ESMTP id\n\tD4CC382438\tfor <gcc-patches@gcc.gnu.org>;\n\tFri, 15 Sep 2017 13:07:09 +0200 (CEST)","from smtp.eu.adacore.com ([127.0.0.1])\tby localhost\n\t(smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port\n\t10024)\twith ESMTP id A9-UUYF_o1Yq for <gcc-patches@gcc.gnu.org>;\n\tFri, 15 Sep 2017 13:07:09 +0200 (CEST)","from polaris.localnet (bon31-6-88-161-99-133.fbx.proxad.net\n\t[88.161.99.133])\t(using TLSv1.2 with cipher\n\tECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\t(No client\n\tcertificate requested)\tby smtp.eu.adacore.com (Postfix) with\n\tESMTPSA id A1B5682436\tfor <gcc-patches@gcc.gnu.org>;\n\tFri, 15 Sep 2017 13:07:09 +0200 (CEST)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:subject:date:message-id:mime-version:content-type\n\t:content-transfer-encoding; q=dns; s=default; b=A3w+kYbrcqOdOzNT\n\tFf7G/glgWyHG9VdnPu9d8I6ZNpRrevEBf71YkQpEXtLPR5lk+ty0zNR1TCwdGMVp\n\tcVqqgsQrTsxQdxtdAYihDHAAlqEIlpZpj2Gmsz3ZZZuD0vph0+twIM8DZa6hIQmg\n\tO0ZoGhL8Cc3a34QtgIo2LJJ+Nzk=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:from\n\t:to:subject:date:message-id:mime-version:content-type\n\t:content-transfer-encoding; s=default; bh=cmE+IIk2yLUnTA3UIH7Oqy\n\t+9lXw=; b=JEFkz0AjetxA6syxytqeHeB3fOOQfy6ZrqeGKvX8OAIJVWHs9lj+HV\n\taUgdJhqgjEMDfM7OsCymoHIuzPHrPDx81YkQ00LaWkDq4kHzBPMO6iFxrD/7VYS4\n\td/DXbWIR2gWHCq70THNtaG6yCEwVOltKNnx8i5PMtmRBm9VO0CyhQ=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-10.9 required=5.0 tests=AWL, BAYES_00,\n\tGIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=","X-HELO":"smtp.eu.adacore.com","From":"Eric Botcazou <ebotcazou@adacore.com>","To":"gcc-patches@gcc.gnu.org","Subject":"[c-family] Issue a warning in C++ on pragma scalar_storage_order","Date":"Fri, 15 Sep 2017 13:07:08 +0200","Message-ID":"<14071962.Srb1NyX0Vs@polaris>","User-Agent":"KMail/4.14.10 (Linux/3.16.7-53-desktop; KDE/4.14.9; x86_64; ; )","MIME-Version":"1.0","Content-Type":"multipart/mixed; boundary=\"nextPart4303469.Em7oTrsVcu\"","Content-Transfer-Encoding":"7Bit"},"content":"Hi,\n\nthis plugs the hole reported by Florian on the gcc@ list, namely that no \nwarning is issued with -Wall in C++ on pragma scalar_storage_order.\n\nTested on x86_64-suse-linux, OK for the mainline?  And some branches?\n\n\n2017-09-15  Eric Botcazou  <ebotcazou@adacore.com>\n\n\t* c-pragma.c (handle_pragma_scalar_storage_order): Expand on error\n\tmessage for non-uniform endianness and issue a warning in C++.\n\n\n2017-09-15  Eric Botcazou  <ebotcazou@adacore.com>\n\n\t* g++.dg/sso-1.C: New test.\n\t* g++.dg/sso-2.C: Likewise.","diff":"Index: c-family/c-pragma.c\n===================================================================\n--- c-family/c-pragma.c\t(revision 252749)\n+++ c-family/c-pragma.c\t(working copy)\n@@ -415,7 +415,19 @@ handle_pragma_scalar_storage_order (cpp_\n   tree x;\n \n   if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN)\n-    error (\"scalar_storage_order is not supported\");\n+    {\n+      error (\"scalar_storage_order is not supported because endianness \"\n+\t     \"is not uniform\");\n+      return;\n+    }\n+\n+  if (c_dialect_cxx ())\n+    {\n+      if (warn_unknown_pragmas > in_system_header_at (input_location))\n+\twarning (OPT_Wunknown_pragmas,\n+\t\t \"%<#pragma scalar_storage_order%> is not supported for C++\");\n+      return;\n+    }\n \n   token = pragma_lex (&x);\n   if (token != CPP_NAME)\n","prefixes":["c-family"]}